使用POST方法Django时同时更新两个表



所以,我再次需要你的帮助。

我正在为一个小问题而挣扎,我没有找到任何解决方案。

我的models.py中有两个表,我想做的是使用post方法从我的模型中更新这两个表的状态。

你能帮我想出什么主意吗?提前谢谢。

我的型号.py:

class Chat(models.Model):
chat_id = models.IntegerField(primary_key=True, unique=True, blank=True)
payload = models.CharField(max_length=299, validators=[validate])
user_id = models.IntegerField()
utc_date = models.DateTimeField(auto_now_add=True, blank=True)
status = models.CharField(max_length=10)

class ScheduleTable(models.Model):

status = models.CharField(max_length=10)

views.py:
@api_view(['GET', 'POST'])
def get_chat(request):
if request.method == 'GET':
chat_objects = Chat.objects.all()
chat_serialize = ChatSerializer(chat_objects, many=True)
return JsonResponse(chat_serialize.data, safe=False)
elif request.method == 'POST':
chat_data = JSONParser().parse(request)
chat_data['status'] = 'new'
chat_data['chat_id'] += 1
chat_serializer = ChatSerializer(data=chat_data)
if chat_serializer.is_valid():
chat_serializer.save()
return JsonResponse(chat_serializer.data,
status=status.HTTP_201_CREATED)
return JsonResponse(chat_serializer.errors,
status=status.HTTP_400_BAD_REQUEST)

虽然除了chat_serializer.save()之外,您还可以执行类似ScheduleTable.objects.create(status=chat_data['status'])的操作,但我建议您认真考虑数据库设计。您实际上是在两个不同的表中添加同一列。

相关内容

  • 没有找到相关文章

最新更新