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

我想为数据库中的一个字段创建这样的字符串和数字的混合形式:“ XL1A”或“ PP25”。该怎么做?我现在只使用大写字母。

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

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

python大神给出的解决方案

您可以使用通用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,因此您可以根据需要使它复杂。