Python 得到一个;未定义全局名称错误“;在制作“文件”时;对象。get();查询

Python 得到一个;未定义全局名称错误“;在制作“文件”时;对象。get();查询,python,database,django,Python,Database,Django,我得到的错误是 全局名称“name”未定义 对于主题=课程…行。我想查询主题名称,以便在主题模板中使用它们 模型 from django.db import models from django.contrib.auth.models import User class Course(models.Model): name = models.CharField(max_length = 100) stype = models.CharField(max_length =

我得到的错误是

全局名称“name”未定义

对于
主题=课程…
行。我想查询主题名称,以便在主题模板中使用它们

模型

from django.db import models
from django.contrib.auth.models import User

class Course(models.Model):

name      = models.CharField(max_length = 100)
 stype      = models.CharField(max_length = 100)
 subject   = models.CharField(max_length = 100)
 location  = models.CharField(max_length = 100) 

class Teacher(models.Model):
 username      = models.ForeignKey(User,unique = True)
 address   = models.CharField(max_length = 200)
 city      = models.CharField(max_length = 50)   
 email_address = models.EmailField(max_length=75, unique = True)

class Student(models.Model):
 username      = models.ForeignKey(User,unique = True)
 address       = models.CharField(max_length = 200)
 city          = models.CharField(max_length = 50)   
 email_address = models.EmailField(max_length=75, unique = True)


class Attendance(models.Model):

 course    = models.ForeignKey(Course,unique = True)
 student   = models.ForeignKey(Student,unique = True)
 teacher   = models.ForeignKey(Teacher,unique = True)
 date      = models.DateField(unique = True)
 status    = models.BooleanField(unique = True)
 created_at= models.DateTimeField(auto_now_add = True)
 updated_at= models.DateTimeField(auto_now = True)

 def subjects(request,username):
    user      = User.objects.get(username=username)
    subjects  = Course.objects.get(name = name)
    variables = RequestContext(request,{
        'username': username,
        'subject' : subject
  })   
    return render_to_response('subjects.html', variables)

您将在
def主题(请求,用户名):
but.中获得
username

subjects  = Course.objects.get(name = name)   ### name is not defined here...you have to get it from parameter just like username.

subjects=Course.objects.get(name=name)
未定义
名称

您可以通过函数参数传递
名称
用户名

def主题(请求、用户名、名称):

或者用其他字符串代替
name
,例如:


subjects=Course.objects.get(name=“Course\u name”)

标题为
name
的变量未准确定义在该行。这里有什么不清楚的地方?你希望
name=name
做什么?我知道你在说什么,但是def主题只接受2个参数我不能使用name作为参数,但我需要它作为变量为什么?它可以接受任意多的参数,但如果它不是强制性的,那么您可以设置默认值,如
def subjects(request,username,name=None)
这样,如果您在函数调用中未设置
name
参数,那么它将在我尝试的def subjects函数中设置为
None
(请求、用户名、名称):在发布问题之前,我得到了这个主题()正好包含3个参数(给出了2个)@CalinSinea似乎您没有正确地学习django。@CalinSinea您没有将3个参数传递给函数。我建议您阅读
django文档
django书籍
。一些关于
python
的教程使它工作起来了。谢谢,是的,我是一个乞丐,正试图像我一样go@CalinSinea不用了,谢谢。每个人都来自美国初学者。如果我的答案对你有帮助,你可以接受我的答案:)