如何在Django中模拟模型的外键模型?

本耶夫

我有一个带有“地址一对多”字段的Django“客户”模型。我想模拟地址模型,并将模拟模型分配到购物篮模型,然后将其保存到测试数据库。我目前正在使用类似:

address_mock = Mock(spec=Address)
address_mock._state = Mock()
customer = Customer(address=address_mock)
customer.save()

但是得到错误:

ValueError: Cannot assign "\<Mock spec='Address' id='72369632'\>": the current database router prevents this relation

我只是误解了模拟/测试数据库的工作原理?我不想为所有测试创建地址模型,并且该字段不可为空

菲文

使用它查看https://factoryboy.readthedocs.io/en/latest/orms.html,您可以定义子工厂,如下所示:

import factory
from faker import Factory
from address.models import Address
from customer.models import Customer 

fake = Factory.create()

class AddressFactory(factory.DjangoModelFactory):
    class Meta:
        model = Address

    street = factory.LazyAttribute(lambda _: fake.street_address())
    zip_code = factory.LazyAttribute(lambda _: fake.postcode())
    place = factory.LazyAttribute(lambda _: fake.city())


class CustomerFactory(factory.DjangoModelFactory):
    class Meta:
        model = Customer

    address = factory.SubFactory(AddressFactory)
    phone = factory.LazyAttribute(lambda _: fake.phone_number())

CustomerFactory() #this creates a customer with a address 
# or you can do this
address = AddressFactory()
customer.address = address
customer.save()
# or that way 
c = CustomerFactory(address=address)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

(Laravel) 如何在模型中关联外键的外键

来自分类Dev

Python/Django:如何在 HTML 中同时显示主模型和“外键模型”

来自分类Dev

如何在映射Django模型中使用多个外键

来自分类Dev

如何在Django模型外键上添加条件?

来自分类Dev

如何在Django中获取模型实例的外键表的名称?

来自分类Dev

如何在Django模型中设置外键字段以不返回任何值?

来自分类Dev

如何在Django模型中创建一个值为值或外键的字段?

来自分类Dev

如何在Django模板中制作包含两个与外键链接的模型的过滤摘要?

来自分类Dev

如何在 Django 序列化程序中获取外键 ID 而不是引用模型

来自分类Dev

如何在django模型的外键字段中添加和更新数据

来自分类Dev

如何使用外键在Django模型中执行注释?

来自分类Dev

如何从外键模型填充Django中的下拉列表

来自分类Dev

如何使用外键在Django模型中执行注释?

来自分类Dev

如何使当前用户成为 Django 模型中的外键

来自分类Dev

DynamoDB 如何在模型 c# 中设置“外键”

来自分类Dev

Django(模型):如何从外键获取实例

来自分类Dev

django外键(用户)在模型中

来自分类Dev

Django模型中的外键数组

来自分类Dev

Django模型:使用外键中的字段

来自分类Dev

Django模型外键中的属性错误

来自分类Dev

Django模型中的自动外键

来自分类Dev

Django模型中的外键数组

来自分类Dev

django中不同模型字段的外键

来自分类Dev

如何过滤 Django 模型以仅包含出现在子表(带有外键)中的模型?

来自分类Dev

如何将外键为 User 的模型表单保存到 Django 模型中

来自分类Dev

Django模型,循环外键

来自分类Dev

Django多重外键模型

来自分类Dev

如何在不破坏整个应用程序的情况下用Django模型中的多对多替换外键?

来自分类Dev

从模型中获取外键

Related 相关文章

  1. 1

    (Laravel) 如何在模型中关联外键的外键

  2. 2

    Python/Django:如何在 HTML 中同时显示主模型和“外键模型”

  3. 3

    如何在映射Django模型中使用多个外键

  4. 4

    如何在Django模型外键上添加条件?

  5. 5

    如何在Django中获取模型实例的外键表的名称?

  6. 6

    如何在Django模型中设置外键字段以不返回任何值?

  7. 7

    如何在Django模型中创建一个值为值或外键的字段?

  8. 8

    如何在Django模板中制作包含两个与外键链接的模型的过滤摘要?

  9. 9

    如何在 Django 序列化程序中获取外键 ID 而不是引用模型

  10. 10

    如何在django模型的外键字段中添加和更新数据

  11. 11

    如何使用外键在Django模型中执行注释?

  12. 12

    如何从外键模型填充Django中的下拉列表

  13. 13

    如何使用外键在Django模型中执行注释?

  14. 14

    如何使当前用户成为 Django 模型中的外键

  15. 15

    DynamoDB 如何在模型 c# 中设置“外键”

  16. 16

    Django(模型):如何从外键获取实例

  17. 17

    django外键(用户)在模型中

  18. 18

    Django模型中的外键数组

  19. 19

    Django模型:使用外键中的字段

  20. 20

    Django模型外键中的属性错误

  21. 21

    Django模型中的自动外键

  22. 22

    Django模型中的外键数组

  23. 23

    django中不同模型字段的外键

  24. 24

    如何过滤 Django 模型以仅包含出现在子表(带有外键)中的模型?

  25. 25

    如何将外键为 User 的模型表单保存到 Django 模型中

  26. 26

    Django模型,循环外键

  27. 27

    Django多重外键模型

  28. 28

    如何在不破坏整个应用程序的情况下用Django模型中的多对多替换外键?

  29. 29

    从模型中获取外键

热门标签

归档