小编Rea*_*too的帖子

"non_field_errors": [ "无效数据。需要字典,但得到了列表。" ] 在 django rest 框架中,同时在 postman 中调用 api

当我使用 valid.pop() 函数从 orderitem 对象创建订单对象时,它工作正常。现在,我还需要创建另一个 BillingDetails 模型,该模型具有 Order 模型的外键。

现在前端正在发送数据块,其中包含订单项数据,同时还包含账单详细信息。我必须创建 Order 对象,同时创建 Orderitem 对象和 BillingDetails 对象。

我尝试编写此内容,但在Postman 上的 api 调用上出现错误。

在此输入图像描述

我的模型:

class Order(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE, blank=True)    
    start_date = models.DateTimeField(auto_now_add=True)
    ordered_date = models.DateTimeField()
    ordered = models.BooleanField(default=False)   
    def __str__(self):
        return self.user.email

class OrderItem(models.Model):    
    order = models.ForeignKey(Order,on_delete=models.CASCADE, blank=True,null=True,related_name='order_items')
    item = models.ForeignKey(Product, on_delete=models.CASCADE,blank=True, null=True)
    quantity = models.IntegerField(default=1)


    def __str__(self):
        return f"{self.quantity} items of {self.item} of {self.order.user}"


class BillingDetails(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE, blank=True)
    order = models.OneToOneField(Order, on_delete=models.CASCADE, blank=True, null=True, related_name='billing_details')
    first_name …
Run Code Online (Sandbox Code Playgroud)

api django serialization dictionary django-rest-framework

5
推荐指数
1
解决办法
2万
查看次数

对 IP 地址列表进行排序时出现意外输出

我正在尝试从以下列表中对 IP 地址列表进行排序。

IPlist= ['209.85.238.4', '216.239.51.98', '64.233.173.198', '64.3.17.208', '64.233.173.238']
Run Code Online (Sandbox Code Playgroud)

#第一个案例

tmp1 = [list (map (str, ip.split("."))) for ip in IPlist]

tmp1.sort()
print(tmp1)
Run Code Online (Sandbox Code Playgroud)

当我运行这个片段时。我得到以下输出。

[['209', '85', '238', '4'], ['216', '239', '51', '98'], ['64', '233', '173', '198'], ['64', '233', '173', '238'], ['64', '3', '17', '208']]
Run Code Online (Sandbox Code Playgroud)

#第二种情况

tmp = [tuple (map (int, ip.split("."))) for ip in IPlist]
# print(tmp)

tmp.sort ()
print(tmp)
Run Code Online (Sandbox Code Playgroud)

当我运行第二个案例时,我得到以下输出。

[(64, 3, 17, 208), (64, 233, 173, 198), (64, 233, 173, 238), (209, 85, 238, 4), (216, 239, 51, 98)] …
Run Code Online (Sandbox Code Playgroud)

python sorting list

-1
推荐指数
1
解决办法
72
查看次数