如何从Django ModelForm中删除字段?

时间:2017-12-16 20:04:35

标签: python django

我正在尝试使用ModelForm在我在Django管理页面中创建的表单中隐藏和删除两个字段。 我查看了答案,说我应该使用“排除”元字段,但我不知道为什么它在我的情况下不起作用。 这是我的代码:

models.py:

- https://stackoverflow.com/questions/46826164/kubernetes-pods-failing-on-pod-sandbox-changed-it-will-be-killed-and-re-create
- https://stackoverflow.com/questions/46922452/kubernetes-1-7-on-google-cloud-failedsync-error-syncing-pod-sandboxchanged-pod

我试图将“参与者和志愿者”字段排除在Django管理表格中。

在admin.py中我有:

class Activity(models.Model):
    type = models.CharField(max_length=50, default="")
    title = models.CharField(max_length=200, default="")
    description = models.CharField(max_length=500)
    owner = models.ForeignKey(User, related_name="owner")
    college = models.CharField(max_length=200)
    location = models.CharField(max_length=200)
    room = models.CharField(max_length=200)
    startDate = models.DateTimeField(null=True, blank=True)
    endDate = models.DateTimeField(null=True, blank=True)
    attendee = models.ManyToManyField(Attendee, related_name="attendees",null=True, blank=True)
    volunteer = models.ManyToManyField(Volunteer, related_name="volunteers",null=True, blank=True)

3 个答案:

答案 0 :(得分:1)

您必须在应用中创建admin.py文件并注册模型 关注instuctions 请参阅下面的示例

from django import forms
from django.contrib import admin
from myapp.models import Person

class PersonForm(forms.ModelForm):

    class Meta:
        model = Person
        exclude = ['name']

class PersonAdmin(admin.ModelAdmin):
    exclude = ['age']
    form = PersonForm

admin.site.register(Person, PersonAdmin)

答案 1 :(得分:0)

您可以在一个班级中使用任一字段或排除。

在您的应用管理员字段中添加此代码。

  

APP_NAME / admin.py

Objective-C Bridging Header

答案 2 :(得分:0)

您必须使用ModelAdmin选项从Django管理中排除表单中的字段ModelAdmin.excludeModelAdmin.fields。以下是一个例子:

class ActivityAdmin(admin.ModelAdmin):
    exclude = ('attendee', 'volunteer', )

要使其正常工作,请注册以下模型:

admin.site.register(Activity, ActivityAdmin)

您将此代码添加到admin.py文件。