У меня есть мнение:
def get_comment_tree(request):
news_id = request.GET.get("news_id")
ret = list(Comment.objects.filter(news_id=news_id).values("nid", "content", "parent_comment_id", "user", "create_time"))
return JsonResponse(ret, safe=False)
Возврат представления будет отправлен обратно в ajax. Теперь проблема в том, как мне преобразовать значение "user" в "username" , теперь я получаю только user_id и create_time "в естественный или естественный формат времени .
Если я использую python для преобразования этих данных, думаю, это будет немного сложно, может помочь любой друг?
Это моя модель комментариев:
class Comment(models.Model):
"""
评论表
"""
nid = models.AutoField(primary_key=True)
news = models.ForeignKey(verbose_name='评论文章', to='News',to_field='id',on_delete=models.CASCADE)
user = models.ForeignKey(verbose_name='评论者', to='User',to_field='id',on_delete=models.CASCADE)
content = models.CharField(verbose_name='评论内容', max_length=255)
create_time = models.DateTimeField(verbose_name='创建时间', auto_now_add=True)
parent_comment = models.ForeignKey('self', null=True, on_delete=models.CASCADE)
def __str__(self):
return self.content
4 ответа
Попробуйте
from django.db.models import F
Comment.objects.filter(news_id=news_id).values("nid", "content", "parent_comment_id", "create_time", username=F('user__username'))
Если пользователь связан внешним ключом с models.user, то вы может получить доступ к имени пользователя как user.username.
А для create_time это зависит от типа данных, который вы настроили для него в файле models.py.
Если это объект datetime, вы можете преобразовать его в строку, используя datetime.strftime () как create_time.strftime("%m/%d/%Y, %H:%M:%S")
Если в модели комментариев используется ForeignKey, вы можете use user__username
получить значение, если вы хотите изменить user__username на user, вы можете попробовать следующее:
list(Comment.objects.filter(news_id=news_id).values("nid", "content", "parent_comment_id", user='user__name', "create_time"))
ret = list(Comment.objects.filter(news_id=news_id).values("nid", "content", "parent_comment_id", "user__username", "create_time"))
Этот запрос покажет имя пользователя с ключом как user__username.
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.