to_field not working in ForeignKey relationship in django -
i trying link comments model username field of auth user model.
here code
from django.contrib.auth.models import user django.db import models urllib.parse import urlparse class posts(models.model): title = models.charfield(max_length=200) url = models.urlfield() points = models.integerfield(default=0) moderator = models.foreignkey(user, related_name="moderated_stories") voters = models.manytomanyfield(user, related_name="liked_stories", blank=true) created_at = models.datetimefield(auto_now_add=true) updated_at = models.datetimefield(auto_now=true) @property def domain(self): return urlparse(self.url).netloc def __str__(self): return self.title + " " + self.moderator.username class meta: verbose_name_plural = "stories" class comments(models.model): comment = models.textfield() created_at = models.datetimefield(auto_now_add=true) user = models.foreignkey(user, related_name="commented_on", to_field="username") commented_on = models.foreignkey(posts, related_name="comments") def __str__(self): return self.comment + " " + self.user class meta: verbose_name_plural = "comments" but on executing queries gives me following error:
>>> post = posts.objects.get(id=2) >>> post.comments.all() django.contrib.auth.models.doesnotexist: user matching query not exist. but when execute query serialize data works
>>> serializers.serialize('json', post.comments.all()) '[{"model": "news.comments", "pk": 1, "fields": {"comment": "thanks sharing link :)", "commented_on": 2, "created_at": "2015-09-30t06:01:40.201z", "user ": 1}}, {"model": "news.comments", "pk": 2, "fields": {"comment": "this looking for...!", "commented_on": 2, "created_at": "2015-09-30t06:02:17.4 97z", "user": 4}}, {"model": "news.comments", "pk": 3, "fields": {"comment": "th anks sharing !", "commented_on": 2, "created_at": "2015-09-30t06:02:43.971z" , "user": 3}}]' but serialized data still contains pk of user , not username. wrong code?
Comments
Post a Comment