将字段添加到ModelAdmin表单

时间:2013-09-13 20:26:13

标签: python django django-admin django-forms

我想让用户一次创建多个事件。因此,我想在admin-add-page中添加一个字段,在该页面中可以指定多个重复项。然后我想覆盖保存功能并创建多个事件(基于输入)。我开始编写一些代码但管理员添加页面根本没有更新。我将向您展示以下代码:

在admins.py中:

class EventAdmin(admin.ModelAdmin):
    form = EventForm
admin.site.register(Event, EventAdmin)

在forms.py

from django import forms
from django.db import models
from calendar_app.models import Event
class EventForm(forms.ModelForm):
    name = models.CharField(max_length=100) # just for testing purpose
    class Meta:
        model = Event

    def __init__(self, *args, **kwargs):
        super(EventForm, self).__init__(*args, **kwargs)
        if not kwargs.has_key('instance'):
            self.fields['name'] = forms.CharField(label='Name')
            self.base_fields['name'] = forms.CharField(label='Name') 

    def save(self, commit=True):
        model = super(EventForm, self).save(commit=False)
        # Save all the fields...
        if commit:
            model.save()
        return model

但添加活动时,“名称”字段未显示。有任何想法吗?谢谢!

1 个答案:

答案 0 :(得分:-1)

我使用models.CharField而不是forms.CharField。见评论。