Ich möchte Factory Boy und its support für Faker verwenden, um Zeichenfolgen von mehr als einem Anbieter zu generieren. z.B. Kombinieren prefix
und name
:In Factory Boy, wie man mit Faker erzeugte Saiten verbindet?
# models.py
from django.db import models
class Person(models.Model):
full_name = models.CharField(max_length=255, blank=False, null=False)
# factories.py
import factory
class PersonFactory(factory.Factory):
class Meta:
model = models.Person
full_name = '{} {}'.format(factory.Faker('prefix'), factory.Faker('name'))
Aber das scheint nicht zu funktionieren. Beispiel:
>>> person = PersonFactory()
>>> person.full_name
'<factory.faker.Faker object at 0x7f25f4b09e10> <factory.faker.Faker object at 0x7f25f4ab74d0>'
Was fehlt mir?
Was sind die Felder in Ihrer 'models.Person' Klasse? Dies ist eine relevante Information. – wim
OK, ich war mir nicht sicher, ob es helfen würde, aber ich habe es jetzt hinzugefügt. –
@PhilGyford: Funktioniert [this] (https://factoryboy.readthedocs.io/en/latest/index.html#lazy-attributes)? Sie müssten ein 'Präfix'- und ein' Name'-Klassenattribut erstellen, die in Ihrem Modell nicht vorhanden sind, und sie dann kombinieren, um 'full_name' zu erstellen. Ich bin mir nicht sicher, ob dies zu einem Fehler führen wird, da das ursprüngliche 'Personenmodell 'diese Felder nicht enthält. – Blender