Это кажется глупой проблемой, но просто не уходите. Моя цель - сделать простой пост, обмен, комментарии, нравится и т. Д. Приложение. Большинство функций, похоже, отлично работают с публикацией и комментированием сообщения. Итак, у меня есть модель под названием UserPost и другая модель под названием Комментарии. Комментарий полевая модель имеет поле comment_liked_by которое ManytoMany отношение к Джанго пользователя Модели и это в основном для хранения пользователей, которые понравившиеся конкретный comment.This это мой models.py:-Django: Операционная ошибка при использовании поля ManytoMany
class UserPost(models.Model):
post_created = models.DateTimeField(auto_now_add= True)
post_last_edit = models.DateTimeField(auto_now=True)
post_text_body = models.TextField(verbose_name='Share Yourself')
post_user_handle = models.ForeignKey(User,verbose_name='Username',default=User,on_delete=models.CASCADE)
post_share = models.BooleanField(default=True,verbose_name='Public')
#post_image = models.ImageField(blank=True,verbose_name='Add a Photo')
def __str__(self):
return (self.post_user_handle.first_name+" "+self.post_user_handle.last_name)
def get_absolute_url(self):
return reverse('feedviews')
class Meta:
verbose_name = "Latest Post"
verbose_name_plural = "Latest Posts"
ordering = ["-post_created"]
class Comments(models.Model):
comment_body = models.TextField(verbose_name="Add Comment")
comment_likes = models.IntegerField(default= 0)
comment_created = models.DateTimeField(auto_now=True)
comment_user_handle = models.OneToOneField(User,default=User,related_name='Commented_by')
comment_post = models.ForeignKey(UserPost,verbose_name='Post ID')
comment_liked_by = models.ManyToManyField(User,related_name='Like_List')
def __str__(self):
return (self.comment_user_handle.first_name+" "+self.comment_user_handle.last_name+"\n"+self.comment_body+"\n")
class Meta:
verbose_name = "Latest Comment"
verbose_name_plural = "Latest Comments"
ordering = ["-comment_created"]
В views.py I вызвать функцию, которая получает аргументы pOST_ID, comment_id и имя пользователя для идентификации комментария объект, который должен быть обновлен, когда пользователь любит comment.Here мой views.py: -
def LikeComment(request,username,post_id,comment_id):
user = User.objects.get(username=username)
post = UserPost.objects.get(post_user_handle=user,id=post_id)
comment = post.comments_set.get(id = comment_id)
comment.comment_liked_by.add(request.user)
comment.save()
return HttpResponseRedirect('/')
проблема в том, каждый раз, когда я запускать сервер, и пользователь щелкает, добавляя request.user в набор комментариев_liked_by, я получаю Операционную ошибку без такой таблицы, называемой comment_ liked_by. Я выполнил makemigration и выполнил миграцию без проблем. Где я ошибаюсь? Связано ли отношение onetoone с моделью User и конфликтами Many to Many? Я попытался реализовать это с помощью внешнего ключа, но это кажется более сложным. Заранее спасибо.
Попробуйте это в своей оболочке django, посмотрите, все ли это. Также попробуйте свою оболочку db и вручную проверьте, есть ли поле и имя правильное. –