如何解决Graphene Django:使用用户列表创建突变以创建聊天室
我正在尝试使用 graphene-django 为此类创建此突变。我有三个模型:聊天、消息和用户。我将如何通过用户名作为突变链接用户来创建新聊天?
# Models in models.py
class BaseUser(models.Model):
username = models.CharField(max_length=128,unique=True)
customizable_name = models.CharField(max_length=128)
class Chat(models.Model):
users = models.ManyToManyField(BaseUser)
name = models.CharField(max_length=128,blank=True)
last_message = models.DateTimeField(auto_Now=True)
image = models.ImageField(upload_to="uploads/chat/room",blank=True,null=True)
class Message(models.Model):
chat_fk = models.ForeignKey(Chat,on_delete=models.CASCADE,related_name="chat")
user_fk = models.ForeignKey(BaseUser,related_name="sending_user")
text = models.CharField(max_length=500,blank=True)
created_time = models.DateTimeField(auto_Now_add=True)
输入schema.py
class BaseUserType(DjangoObjectType):
class Meta:
model = models.BaseUser
fields = ['id','username','customizable_name','created_on']
class ChatType(DjangoObjectType):
class Meta:
model = models.Chat
fields = ['id','users','name','last_message','image']
schema.py 中的突变
class CreateChat(graphene.Mutation):
name = graphene.String()
users = graphene.List(graphene.String)
image = graphene.String()
class Arguments:
name = graphene.String()
users = graphene.List(graphene.String)
image = graphene.String()
chat = graphene.Field(ChatType)
def mutate(root,info,name,users,image):
#user = []
#for user in models.BaseUser.objects.all():
# models.BaseUser.objects.filter(username__in)
chat = Chat(name = name,users = users,image = image)
chat.save()
return CreateLocation(
id = chat.id,name = chat.name,users = chat.users,image = chat.image,)
GraphQL 上的 GraphQL
mutation createChat {
createChat(name: "Chat",users: ["user1","user2"],image: "Image"){
name
users
image
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。