简体   繁体   English

如何在 DRF 中返回用户名而不是用户 object?

[英]How to return username instead of user object in DRF?

I want to set a username for each object.我想为每个 object 设置一个用户名。 Here is my models.py这是我的models.py

from django.contrib.auth.models import User
from django.conf import settings


# Tweet Model
class TweetModel(models.Model):
    text = models.TextField(max_length=300, blank=False)
    created_at = models.DateTimeField(auto_now_add=True)
    owner = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, blank=True)
    username = models.CharField(max_length=100, blank=True)

And viewset.py和 viewset.py

from .models import TweetModel
from rest_framework import viewsets, permissions


# TweetViewset
class TweetViewset(viewsets.ModelViewSet):
    permission_classes = [
        permissions.IsAuthenticated
    ]
    serializer_class = TweetSerializer

    def get_queryset(self):
        ordered = TweetModel.objects.order_by('-created_at')
        return ordered

    def perform_create(self, serializer):
        serializer.save(owner=self.request.user, username=self.request.user.username)

But it is not working.但它不起作用。 Error is错误是

django.db.utils.ProgrammingError: column tweets_tweetmodel.username does not exist
LINE 1: ...el"."created_at", "tweets_tweetmodel"."owner_id", "tweets_tw...

Can you help, please?你能帮忙吗?

I forgot to run makemigrations and migrate我忘了运行makemigrationsmigrate

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM