使用 Django 中的 Factory Boy 创建字符串和数字的混合

Create a mix of string and digit with Factory Boy in django

我想像这样创建字符串和数字的混合:"XL1A" 或 "PP25" 用于我 database.How 中的一个字段,我可以这样做吗?我现在只使用大写字母。

class CardFactory(DjangoModelFactory):
    class Meta:
        model = Card
    serial_number = FuzzyText(length=4, chars=string.ascii_uppercase)

此外,是否可以在 Factory Boy 中为 FuzzX 创建随机模式规则,例如随机 IP 地址?

digits 添加到字符列表?

serial_number = FuzzyText(length=4,
                          chars=string.ascii_uppercase + string.digits)

您可以使用通用 FuzzyAttribute 创建自己的规则。例如:

def generate_serial():
    return random.choice(string.ascii_uppercase) + random.choice(string.digits)

class CardFactory(DjangoModelFactory):
    class Meta:
        model = Card
    serial_number = FuzzyAttribute(generate_serial)

这将生成像 'Q3' 这样的随机连续剧。由于 generate_serial 函数很简单 Python,您可以根据需要将其复杂化。