我试图隐藏和删除两个字段显示在我使用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)
您必须在应用程序中创建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)
您可以在一个类中使用任一字段或排除。
在您的应用管理员字段中添加此代码。
APP_NAME / admin.py
from django.contrib import admin
class ActivityAdmin(admin.ModelAdmin):
exclude = ('attendee', 'volunteer',)
您必须使用ModelAdmin
选项从Django管理中排除表单中的字段,ModelAdmin.exclude
或ModelAdmin.fields
。以下是一个例子:
class ActivityAdmin(admin.ModelAdmin):
exclude = ('attendee', 'volunteer', )
为了使它工作,你注册这样的模型:
admin.site.register(Activity, ActivityAdmin)
您将此代码添加到admin.py
文件。