2017-04-23 34 views
0

我的模型:如何使用外键塞Django的

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

url(r'^(?P<faculty>[\w-]+)/(?P<program>[\w-]+)/(?P<slug>[\w-]+)/$', profile, name='profile'), 

现在,我得到的轮廓在主机/ 1/1/sagar-devkota /我需要的是主持人/科学/ be/sagar-devkota /让我们假设科学是一门学科,是一个计划。

回答

1

给老师和程序模型提供slu field字段。并在过滤器中使用__进行相关查找。

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)