值错误:无法分配"<User: username>":"MessageModel.user_name"必须是"Room"实例



我有一个MessageModel,它有一个字段user_name,它是Room模型的一个实例。我想在线保存当前用户的所有消息,但当我试图保存房间模型实例的用户名时。。。出现了一个错误,类似于->ValueError:无法分配"lt;用户:用户名>quot;:"MessageModel.user_name"必须是";房间";例子我有另一个模型DateTimeField,它有下面的字段datecreated和date_modified。

models.py->

class Room(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name='owner', null=True)
def __str__(self):
return str(self.user.username)
class MessageModel(DateTimeModel):
user_name = models.ForeignKey(Room, null=True, blank=True, on_delete=models.SET_NULL)
user = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name = 'sender', on_delete=models.CASCADE, null=True)
message = models.TextField('body')
recipients = models.ManyToManyField(settings.AUTH_USER_MODEL, related_name='recipients')
class Meta:
ordering = ['-id']

forms.py-->

class MessageModelInline(admin.TabularInline):
model = MessageModel
class RoomAdmin(admin.ModelAdmin):
inlines = [MessageModelInline]
admin.site.register(Room, RoomAdmin)
@database_sync_to_async
def save_message_to_db(self,username, message):
user_name = self.user_name
print(type(user_name))     # <class 'django.contrib.auth.models.User'>
return MessageModel.objects.create(user_name=user_name, user=username, message=message)

任何解决方案都将受到高度赞赏。谢谢

MessageModel.objects.create(user_name=user_name, user=username, message=message)

上面的线应该改成下面的这条线

MessageModel.objects.create(user_name=instance_of_Room, user=username, message=message)

相关内容

最新更新