我试图创建一个动态字段,因为我需要在服务模型中为每个组提供一条个人消息。你知道吗
因此,我必须在我的服务表单上动态创建一些字段。你知道吗
这是我的服务表单:
class ServicesForm(forms.ModelForm):
role = forms.ModelChoiceField(queryset=Group.objects.all(), required=False)
def __init__(self, *args, **kwargs):
super(ServicesForm, self).__init__(*args, **kwargs)
try:
for elem in Group.objects.all():
i = elem.pk
service = kwargs['instance']
group = elem
if RoleMessage.objects.filter(service=service, role=group).count() > 0:
default = RoleMessage.objects.get(service=service, role=group).message
else:
default = ""
self.fields[elem.name+'_message'] = forms.CharField(widget=forms.Textarea(attrs={'class': str(i)+'_message'}), initial=default, required=False)
except:
pass
class Meta:
model = Services
fields="__all__"
这是我的服务管理员:
class ServicesAdmin(admin.ModelAdmin):
form = ServicesForm
list_display = (
'serviceName',
)
def get_fieldsets(self, request, obj=None):
fieldsets = super(ServicesAdmin, self).get_fieldsets(request, obj)
if obj != None:
limit = len(fieldsets[0][1]['fields']) - 1
index = 0
for elem in Group.objects.all():
i = elem.pk
fieldsets[0][1]['fields'].insert(limit+index, elem.name+'_message')
index += 1
return ((None, {'fields': fieldsets[0][1]['fields'],}),)
这就是我在尝试打开或创建服务时遇到的错误:
Unknown field(s) (ServicesManager_message, Administradores_message) specified for Services. Check fields/fieldsets/exclude attributes of class ServicesAdmin.
我的型号.py是:
class Services(models.Model):
serviceName = models.CharField(
blank=False,
max_length=50
)
class Meta:
db_table = "service"
class RoleMessage(models.Model):
service = models.ForeignKey(Services, blank=False)
role = models.ForeignKey(Group, blank=False)
message = models.CharField(max_length=256, blank=False, default="")
我已经解决了这个问题。Django1.8中的一些内容发生了变化,实现是从1.5开始的。你知道吗
在这里我回答我的变化,以解决问题。你知道吗
在我的ServiceAdmin上也发生了更改:
相关问题 更多 >
编程相关推荐