model.py
class Goods(models.Model):
"""
goods info
"""
id = models.AutoField(primary_key=True)
g_title = models.CharField(verbose_name='Title', max_length=200,default='',null=True)
g_info = models.TextField(verbose_name="Info", default='', blank=True, null=True)
originalprice = models.FloatField(verbose_name='originalprice', default=100)
price = models.FloatField(verbose_name='presentprice', default=50)
g_c_time = models.DateTimeField(auto_now_add=True, verbose_name='Create time')
# image = models.ImageField(upload_to='image/%Y/%m/', null=True, blank=True)
## 增加sellerforeignKey
seller = models.ForeignKey(User, on_delete=models.CASCADE, related_name='seller',null=True)
address = models.TextField(verbose_name="Address", default='', blank=False, null=True)
contact_way = models.CharField('Contact_way', max_length=15, default='wechat')
contact = models.CharField('Contact', max_length=40, blank=True, null=True)
available = models.CharField('Available', max_length=5, default='True') # True 可售卖 sold 售出
category = models.TextField(verbose_name='category', default='其他')
def __str__(self):
return self.g_title
class Meta:
ordering = ['id','g_c_time']
verbose_name = 'Goods'
verbose_name_plural = verbose_name
直接返回是不行的,需要将model.object做处理,可以变成字符串,但是会有些麻烦,这时我们使用序列化器
在model.py加入:
from rest_framework import serializers
class GoodsSerializer(serializers.ModelSerializer):
class Meta:
model = Goods
fields = '__all__'
views.py
def IndexView(request):
if request.method == 'GET':
print('%%%%%%%%')
goods_latest = Goods.objects.all().order_by('-g_c_time', 'g_title')[:12] # 可设置展示多少个商品
serializer = GoodsSerializer(goods_latest, many=True)
return HttpResponse(serializer.data, status=202)
# return render(request, 'shop/index.html', {'user': user})
大功告成