Я новичок в Python и Django, и мне нужна помощь опытных питонистов. У меня есть модель юнита, подобная этой:
class Unit(models.Model):
unit_type = models.CharField("Unit type", max_length=25)
content = models.TextField()
Я хочу добавить несколько юнитов с панели администратора. Но в поле содержимого мне нужно иметь JSON -сериализованный объект, содержащий кучу данных, поэтому я хочу позволить пользователям добавлять эти данные через обычные поля, комбинировать их в JSON программно и сохранять в содержимом , Но когда я пытаюсь зарегистрировать эту модель в Admon следующим образом:
class UnitAdmin(admin.ModelAdmin):
fieldsets = [
(None, {'fields': ['unit_type', 'url', 'name']}),
]
admin.site.register(Unit, UnitAdmin)
я получаю сообщение об ошибке:
FieldError at /admin/cms/unit/add/
Unknown field(s) (name, url) specified for Unit. Check fields/fieldsets/exclude attributes of class UnitAdmin.
Могу ли я каким-то образом собрать больше данных в моей панели администратора, чем мне нужно сохранить в базе данных?
Обновление
Мне удалось создать дополнительные поля с помощью класса modelForm, благодаря предложению Алекса. Но когда я сохраняю модель, я не знаю, как присвоить значение полю содержимого. Мой код теперь такой:
class UnitForm(forms.ModelForm):
name = forms.CharField(max_length=200)
url = forms.CharField(max_length=200)
class Meta:
model = Unit
fields = ["name", "url", "unit_type"]
class UnitAdmin(admin.ModelAdmin):
form = UnitForm
Я знаю, как получить значения name и url в классе modelForm, но я не могу назначить их в поле содержимого модели Unit. Как мне это сделать?