Колорпикер и валидация полей
Я использую TabularInlines
для сбора некоторой информации, одной из которых является поле цвета:
class UnitForm(forms.ModelForm):
class Meta:
model = Unit
fields = ["date", "name", "label", "color"]
widgets = {"color": TextInput(attrs={'type': 'color'}),}
class UnitTabularInline(admin.TabularInline):
form = UnitForm
model = Unit
extra = 0 ##workaround
class StockAdmin(admin.ModelAdmin):
list_display = []
inlines = [UnitTabularInline]
Моя проблема в том, что без переключателя extra = 0
я всегда вижу 3 "пустых" поля (которые я на самом деле хочу видеть). Но я не могу сохранить форму, если не заполню все поля, потому что colorpicker имеет заранее выбранное значение. Похоже, что когда input
имеет type="color"
, всегда есть определенный цвет, и нет способа установить эту строку пустой.
Могу ли я каким-то образом пропустить проверку формы для полей, в которых есть только color
в self.chagned_data
или что-то в этом роде? Я бы хотел, чтобы остальные правки сохранялись.
Модель:
class Unit(models.Model):
name = models.CharField("name", max_length=128, blank=True, null=True)
date = models.DateField()
stock = models.ForeignKey(Stock, on_delete=models.CASCADE)
label = models.CharField("extra label", max_length=32, null=True, blank=True)
color = models.CharField(max_length=7, null=True, blank=True)