如何在slug django中使用Foreign Key

eet 发布于 2019-10-09 django 最后更新 2019-10-09 22:59 12 浏览

我的模特:

class Faculty(models.Model):
    name = models.CharField(max_length=30)
class Program(models.Model):
    name = models.CharField(max_length=30)
    faculty = models.ForeignKey(Faculty)
class Student(models.Model):
    name = models.CharField(max_length=30)
    slug = models.SlugField(max_length=30, unique=True)
    faculty = models.ForeignKey(Faculty)
    program = models.ForeignKey(Program)
我的观点
def profile(request, slug, faculty, program):
    template_name = 'profile.html'
    infor = get_object_or_404(Candidate, slug=slug, faculty=faculty, program=program)
    context = {'title': infor.name}
    return render(request,template_name,context)
网址
url(r'^(?P<faculty>[\w-]+)/(?P<program>[\w-]+)/(?P<slug>[\w-]+)/$', profile, name='profile'),
现在我在主持人/ 1/1 / sagar-devkota /我需要的东西是主持人/科学/ be / sagar-devkota /让我们假设科学是一个教师,并且是一个计划。
已邀请:

kex

赞同来自:

为教师和项目模型提供slug字段。在过滤器中使用__进行相关查找。

infor = get_object_or_404(Candidate, slug=slug, faculty__slug=faculty, program__slug=program)
您也可以使用该name字段来完成此操作。
infor = get_object_or_404(Candidate, slug=slug, faculty__name=faculty, program__name=program)