我有一个与用户有多对多关系的模型(挑战)。用户模型与Profile具有一对一的关系。配置文件用于存储有关用户的自定义内容。在Django管理员中,create表单必须仅在其Profile模型中显示具有is_partner True字段的用户。我可以在不创建另一个表来存储合作伙伴的情况下实现这一目标吗?
class Challenge(models.Model):
partners = models.ManyToManyField(User)
participants = models.ManyToManyField(Team)
details = models.TextField(max_length=512, default=None, blank=True)
description = models.TextField(max_length=512, default=None, blank=True)
documentation = models.TextField(max_length=512, default=None, blank=True)
prize = models.TextField(max_length=512, default=None, blank=True)
live = models.BooleanField(default=False)
答案 0 :(得分:1)
您必须创建一个自定义表单来验证您提到的逻辑,以保存或不保存m2m关系。根据{{3}}
class MyModelAdmin(admin.ModelAdmin):
def get_queryset(self, request):
qs = super(MyModelAdmin, self).get_queryset(request)
if request.user.is_superuser:
return qs
return qs.filter(author=request.user)