3

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

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

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

4

2 回答 2

4

添加digits到字符列表?

serial_number = FuzzyText(length=4,
                          chars=string.ascii_uppercase + string.digits)
于 2015-03-13T08:09:33.047 回答
2

您可以使用泛型创建自己的规则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,因此您可以根据需要使其复杂。

于 2015-03-13T08:13:05.597 回答