如何处理tastypie中的循环进口

时间:2013-11-07 14:50:50

标签: python django circular-dependency tastypie

我目前正在开发一款django-tastypie网络应用。 我有两个django模型:

class Student(models.Model):
  name = models.CharField()

class Course(models.Model):
  name = models.CharField()
  student = models.ForeignKey(Student)

从那以后,我在两个不同的文件中有两个Tastypie资源。 但这是我的问题。我希望能够从课程中过滤学生,从学生那里过滤:

from website.api.course import CourseResource

class StudentResource(ModelResource):
  course = fields.ForeignKey(CourseResource, "course")

  class Meta:
    queryset = Student.objects.all()
    resource_name = "student"
    filtering = { "course" : ALL }

from website.api.student import StudentResource

class CourseResource(ModelResource):
  student = fields.ForeignKey(StudentResource, "student")

  class Meta:
    queryset = Course.objects.all()
    resource_name = "course"
    filtering = { "student" : ALL }

但当然,我遇到了循环导入问题。我怎么能解决这个问题?

谢谢!

1 个答案:

答案 0 :(得分:6)

您无需在每个模块中导入其他资源。请尝试使用字符串作为参数。

class StudentResource(ModelResource):
    course = fields.ForeignKey('website.api.course.CourseResource', "course")

class CourseResource(ModelResource):
    student = fields.ForeignKey('website.api.student.StudentResource', "student")