我有两个表,分别称为“用户”和“课程”,我想通过实现多对多关系模型来显示它们之间的关系。我想总共实现3个模型类:
# user/model.py
from django.db import models
from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
is_status = models.BooleanField(default=False)
is_newbie = models.BooleanField(default=False)
#courses/model.py
from django.db import models
from register.models import User
class Courses(models.Model):
course_name = models.CharField(max_length=100, null = False)
class StatusHasCourse(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
course = models.ForeignKey(Courses, on_delete=models.CASCADE)
如何实现此功能,以便仅在User
模型中访问具有is_status = True
的{{1}}之间的关系?
答案 0 :(得分:1)
您可以使用limit_choices_to=…
parameter [Django-doc]来指定如何限制选择。因此,在这种特定情况下,我们可以使用指定is_status=True
的{{3}}:
from django.db.models import Q
class StatusHasCourse(models.Model):
user = models.ForeignKey(
User,
on_delete=models.CASCADE,
limit_choices_to=Q(is_status=True)
)
course = models.ForeignKey(Courses, on_delete=models.CASCADE)