Question

Je développe actuellement une application Web Django-Tastypie. J'ai deux modèles Django:

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

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

Et à partir de cela, j'ai deux ressources Tastypie dans deux fichiers différents. Mais voici mon problème. Je veux pouvoir filtrer les étudiants du cours et le cours de l'étudiant:

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 }

et

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 }

Mais bien sûr, j'ai eu un problème d'importation circulaire. Comment pourrais-je résoudre cela?

Merci !

Était-ce utile?

La solution

Vous n'avez pas besoin d'importer l'autre ressource dans chaque module. Essayez d'utiliser une chaîne comme argument à la place.

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

class CourseResource(ModelResource):
    student = fields.ForeignKey('website.api.student.StudentResource', "student")
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top