我只是python的初学者。我创建了两个名为child和parent的管理服务。
父级 - 表
id
名称
型
儿童 - 表
PID
型
CNAME
在两个服务列中,“type”将显示在下拉列表中。 为父项创建条目时,如果未在父服务中选择“类型”。 那个未选择的父ID应该显示在子服务的下拉列表中 抱歉我的英文不好
# models.py
class Parent(models.Model):
id = models.IntegerField(blank=False)
type = models.ForeignKey(
'self',
on_delete=models.CASCADE,
blank=True,
null=True,
related_name='parent_set')
name = models.CharField(max_length=20)
class Child(models.Model):
pid = models.IntegerField(max_length=30, blank=False)
Type = models.ForeignKey(
Parent,
null=True,
on_delete=models.CASCADE,
related_name='child_set' )
pname = models.CharField(max_length=20)
任何帮助将不胜感激
答案 0 :(得分:0)
尚未对此进行测试。请检查一下是否有效。
class ChildAdmin(admin.ModelAdmin):
def render_change_form(self, request, context, *args, **kwargs):
chosen_types = Parent.objects.all().values_list('type', flat=True)
context['adminform'].form.fields['Type'].queryset = Parent.objects.all().exclude(pk__in=chosen_types)
return super(ChildAdmin, self).render_change_form(request, context, args, kwargs)