Возможно ли создать User instance указав только pk?
есть модель
class Test(models.Model):
user = models.OneToOneField(User)
text = models.TextField()
Возможно ли как-то создать объект, присваиваю полю user PK?
Например Test(user=1, text='123')
Пробовал через lookup, не получается тоже :/ Test(user__pk=1, text='123')
Roman Kitaev: если так сделать при создании объекта, тогда будет ошибка ""Test.user" must be a "User" instance." так как поле user = models.OneToOneField(User). Из-за этого я создал вопрос о том как получить lookup доступ к связанному объекту.
Ivan: Не похоже, что это user = models.OneToOneField(User) что-то объясняет. Этот код работает. К тому же, создавать объекты принято через Test.objects.create.
Roman Kitaev: не знаю с какой версией Джанго вы работаете, но с версий от 1.6 до 1.8 конструкция типа Test(user=request.user.username) или Test.objects.create(user=request.user.username) (оба подхода есть идентичны) объект не создастся, так как тип передаваемого параметра должен совпадать с типом поля. В моем случае поле user наследует тип объекта, который к нему привязан. Так как request.user.username возвращает строку, понятно что при создании объекта будет ошибка. Для её предотвращения необходимо выбрать один из атрибутов наследуемого объекта. Поэтому Test(user_username = self.request.user.username) будет работать, а Test(user = self.request.user.username) - нет.