django - Django:删除重复数据
问题描述
我正在为我的应用程序使用 Django 和 React。我是 Django 休息框架工作的新手。我做了三个模型,它们order
是customer
和products
。Order
模型与客户和产品具有多对一的关系。我成功地将数据提取到 React 前端。但问题是当我输入新条目时,例如:当用户订购新产品时。每次相同的用户名都是这样的前端。我检查了一些文档和 stackover-flow 问题,但没有找到正确的答案。我知道我需要在我的views.py's
订单查询中做一些事情,但不知道怎么做。
这是我的模型
class Customer(models.Model):
name = models.CharField(max_length=200, null= True)
email = models.CharField(max_length=20, null=True)
phone = models.CharField(max_length=20, null=True)
date_created= models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.name
class Tag(models.Model):
name= models.CharField(max_length=200, null=True)
def __str__(self):
return self.name
class Product(models.Model):
CATEGORY=(
('Indoor', 'Indoor'),
('Outdoor', 'Outdoor'),
)
name= models.CharField(max_length=200, null=True)
price= models.FloatField(null=True)
category=models.CharField(max_length=200,null=True, choices=CATEGORY)
description= models.CharField(max_length=200,null=True, blank= True)
date_created=models.DateTimeField(auto_now_add=True, null=True)
tags= models.ManyToManyField(Tag)
def __str__(self):
return self.name
class Order(models.Model):
STATUS =(
('Pending', 'Pending'),
('Out of delivery', 'Out of delivery'),
('Delivered', 'Delivered'),
)
status= models.CharField(max_length=200, null=True,choices= STATUS)
date_created=models.DateTimeField(auto_now_add=True, null=True)
customer = models.ForeignKey(Customer, null= True, on_delete= models.SET_NULL, related_name='orders')
product = models.ForeignKey(Product, null= True, on_delete= models.SET_NULL, related_name='orders')
这是我的意见.py
@api_view(['GET'])
def orderList(request):
orders = Order.objects.all()
serializer = OrderSerializer(orders, many=True)
return Response(serializer.data)
@api_view(['POST'])
def orderCreate(request):
serializer = OrderSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data)
@api_view(['GET'])
def customerList(request):
customers = Customer.objects.values_list('name', flat=True).distinct()
serializer = CustomerSerializer(customers, many=True)
return Response(serializer.data)
@api_view(['GET'])
def customerDetail(request, pk):
customers = Customer.objects.get(id=pk)
# orders = customers.order_set.all()
serializer = CustomerWithProductsSerializer(customers, many=False)
return Response(serializer.data)
这是我的序列化器
class OrderSerializer(serializers.ModelSerializer):
customer = CustomerSerializer()
product = ProductSerializer()
class Meta:
model = Order
fields = ['status', 'customer', 'product']
解决方案
推荐阅读
- ldap - Docker LDAPS 中的 Keycloak 3.4.3
- r - 在现有的 shapefile 映射 ggplot r 中结合 osm 数据(使用 osmdata 包下载)
- node.js - 猫鼬查询中的字符串插值
- javascript - 如果未定义则设置默认返回
- wordpress - 自定义插件中的 Cron 作业在 Wordpress 中不起作用
- javascript - 根据问题,我写的javascript函数是否正确?我是初学者
- c# - 如何将 2 个字符串数组与重复记录进行比较
- c++ - C++ 项目中的指针/引用
- php - 无法从亚马逊抓取搜索内容
- ios - iOS 13:BackgroundTasks 框架不执行后台作业