I have a many-to-many relationship:
class Person(models.Model):
modules = models.ManyToManyField(BaseModule, blank=True)
class BaseModule(models.Model):
task_type = models.CharField(max_length=200)
topic = models.CharField(max_length=200)
I am loading in my fixtures test data, populating my 'BaseModule' database:
fixtures = ['test/fixtures/initial_data.json']
Then creating a User object, but I cant figure out how to create a relationship between a User and BaseModule.
Ive tried many things, including:
# this works, but creates a new BaseModule, I want to create a relationship with one generated in 'fixtures'
test = person.modules.create(topic='test')
test.save()
# this doesnt work
testModule = BaseModule.objects.get(pk=1)
person.modules.set(testModule)
# this doesnt work either
person.modules.create()
person.modules.basemodule_id = 1
person.refresh_from_db()
for module in person.modules.all():
print("module.topic:")
print(module.topic)
print("end")
Thank you.
#this doesnt work
testModule = BaseModule.objects.get(pk=1)
person.modules.set(testModule)
You should add brackets []
testModule = BaseModule.objects.get(pk=1)
person.modules.set([testModule])