如何在不使用生成函数的情况下编写自定义工厂属性

How to write a custom factory attribute without using the generate function

我目前有代码:

class QuerySuggestion(factory.Factory):
    class Meta:
        model = dict

    @factory.lazy_attribute
    def query(self) -> str:
        word = factory.Faker("word")
        return f'<span>{word.generate({"locale": "en"})}</span> {word.generate({"locale": "en"})}'

除了维护者说 not to use the generate() function.

的事实之外,它的效果很好

我应该怎么做?

最简单的选择是通过 class Params:

class QuerySuggestion(factory.Factory):
    class Meta:
        model = dict

    class Params:
        word1 = factory.Faker('word')
        word2 = factory.Faker('word')

    query = factory.LazyAttribute(
        lambda o: f"<span>{o.word1}</span> {o.word2}"
    )