python - Django drf-nested-routers - model object has no attributed related field -
i creating api using drf-nested-routers application django rest framework. application tracker users have sessions , tasks. each user can have 3 active tasks , can work on each of these tasks in given session.
my (abbreviated) models are:
#models.py class user(models.model): name = models.charfield() class task(models.model): start_date = models.datefield() task_title = models.charfield() user = models.foreignkey(user, on_delete=models.cascade) class session(models.model): session_date = models.datefield() user = models.foreignkey(user, on_delete=models.cascade, related_name='sessions') task_one = models.foreignkey(related_name="task_one") task_one_attempts = models.integerfield() task_two = models.foreignkey(related_name="task_two") task_two_attempts = models.integerfield()
i have created following (abbreviated) serializers these models:
#serializers.py class taskserializer(serializers.modelserializer): user = serializers.stringrelatedfield(many=false) class meta: model = task fields = ('start_date', 'task_title', 'user') class sessionserializer(serializers.modelserializer): user = serializers.stringrelatedfield(many=false) class meta: model = session fields = ('session_date', 'user', 'task_one', 'task_one_attempts', 'task_two', 'task_two_attempts') class userserializer(models.modelserializer): sessions = sessionserializer(many=true) tasks = taskserializer(many=true) sessions = sessionserializer(many=true) class meta: model = users fields = ('name', 'sessions', 'tasks')
i have views.py , urls.py set routing properly.
i can navigate sessions , tasks api views fine. however, whenever try navigate user view, throws following error:
'user' object has no attribute 'tasks'.
what's interesting, though, if remove 'tasks' , include sessions, serializes fine , gives me nested view of user's various sessions.
i'm @ loss here , appreciate assistance.
i rubber-ducked wife , figured out problem.
i had 'related_name="sessions"' in foreignkey field user in models.py.
i missing information in foreignkey field in task model.
hopefully else stumbles on , can learn mistake.
Comments
Post a Comment