如何从Django ModelForm中删除字段?

问题描述 投票:0回答:3

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

models.朋友:

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)

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

在admin.py我有:

from django.contrib import admin
from django import forms
from KSUvity.models import Activity


class ActivityForm(forms.ModelForm):

    class Meta:
        model = Activity
        exclude = ['attendee', 'volunteer',]

class ActivityAdmin(admin.ModelAdmin):
    exclude = ['attendee', 'volunteer',]
    form = ActivityForm

admin.site.register(Activity, ActivityAdmin)
python django
3个回答
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)

0
投票

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

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

APP_NAME / admin.py

from django.contrib import admin


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

0
投票

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

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

为了使它工作,你注册这样的模型:

admin.site.register(Activity, ActivityAdmin)

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

© www.soinside.com 2019 - 2024. All rights reserved.