我在Django中實現了一個日曆,並希望擴展我的功能併爲循環事件添加支持。我的問題是我想有一個BooleanField在單/多日事件和循環事件之間切換。所以這個字段會被標記爲:這是一個反覆發生的事件嗎?如果用戶選中此框,它將更改開始和結束字段以顯示不同的字段。Django管理員表單根據複選框動態更改字段
這裏是我的model.py
class Event(models.Model):
title = models.CharField(max_length=40)
description = models.TextField(blank=True)
is_recurring = models.BooleanField(blank=True, default=False, verbose_name='Event is recurring?')
start = models.DateTimeField()
end = models.DateTimeField()
def __str__(self):
return self.title
的簡要版本如果用戶檢查is_recurring字段,則動態刪除這些2場,改變形式。這裏是我的admin.py:
class EventAdmin(admin.ModelAdmin):
form = EventForm
fieldsets = [
(None, {'fields': [
'title',
'description'
]
}
),
(None, {'fields': [
'is_recurring',
'start',
'end',
]
}
),
] # END fieldset
def get_fieldsets(self, *args, **kwargs):
return(
(None, {
'fields' : ('my_extra_field',),
}),
)
admin.site.register(Event , EventAdmin)
,這裏是我的forms.py
class EventForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(EventForm, self).__init__(*args, **kwargs)
self.fields['my_extra_field'] = forms.CharField()
class Meta:
model = Event
所以在這裏,我嘗試添加my_extra_field
的形式,嘗試一下,但我不斷收到
爲事件指定的未知字段(my_extra_field)。檢查 字段/字段集/排除類EventAdmin的屬性。
找不到方法來檢索我的字段。我有一個印象,可能是因爲我使用fieldsets
,你可能想建議不要使用它,但不幸的是,我從我的模型中刪除了很多信息,使它更適合於某個問題,因此我需要使用fieldsets
。
所以要最終確定我的問題,我想知道如何在我的複選框上動態添加字段庫?並作爲問題的延伸,如何從我的表單中刪除2個字段?