Yes, photo_id is PK. So I shouldn't even give its value to the form in
initial values I guess?
Contest_id isn't PK, I want to select a random contest id from contest
objects. (I decided to do this just now, my former code does not include
this :) )
By the way, contest_id is foreign key in Photo. It is a PK in Contest. What
am I doing wrong now? It gives the exact same error.
items = Contest.objects.all()
random_item = random.choice(items)
if request.method =='POST':
data = {'contest_id': random_item.contest_id,
'ownername': 'SUMMERSON',
}
form=PhotoForm(request.POST, initial=data)
if form.is_valid():
Photo = form.save()
else:
form = PhotoForm()
28 Kasım 2017 Salı 00:04:25 UTC+3 tarihinde Matemática A3K yazdı:
>
> You shouldn't give the PK of new objects, leave that to Django. If
> photo_id is the PK of Photo, don't set it, Django will on save.
>
> If the same goes for Contest, then do a "contest = Contest()" - create a
> new contest - and assign it to the photo "photo.contest = contest", then
> "photo.save"
>
> On Mon, Nov 27, 2017 at 5:56 PM, Kubilay Yazoğlu <[email protected]
> <javascript:>> wrote:
>
>> Hi. I'm trying to create a form to construct an object for my Photo
>> class. All of the objects fields except the photo itself will be invisible
>> to the user. So, the only thing can be seen in the form is the button to
>> select and upload the photo.
>>
>> There is no problem with creating the form page. The problem is, giving
>> the initial values for the rest of the fields.
>> This is the relevant code in my view file:
>>
>>
>>
>> if request.method =='POST':
>> data = {'photo_id': get_latest_photo_id_plusone(),
>> 'contest_id': get_latest_contest_id_plusone(),
>> 'ownername': 'SUMMERSON',
>> }
>> form=PhotoForm(request.POST, initial=data)
>> if form.is_valid():
>> Photo = form.save()
>> else:
>> form = PhotoForm()
>>
>>
>> And the relevant functions:
>>
>>
>>
>> def get_latest_photo_id_plusone():
>> max_rating =
>> Photo.objects.all().aggregate(Max('photo_id'))['photo_id__max']
>> return max_rating+1
>>
>>
>> def get_latest_contest_id_plusone():
>> max_rating
>> =Photo.objects.all().aggregate(Max('contest_id'))['contest_id__max']
>> return max_rating+1
>>
>>
>>
>> The error arises when I click on the send button after I select the
>> image. It says:
>>
>> IntegrityError at /photo/create/
>> NOT NULL constraint failed: photo_photo.contest_id_id
>>
>> But I've given the contest_id value. Haven't I? Where is the problem and
>> how can I fix it?
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Django users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected] <javascript:>.
>> To post to this group, send email to [email protected]
>> <javascript:>.
>> Visit this group at https://groups.google.com/group/django-users.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/django-users/57db225c-41bf-43d2-b9d8-ffb3174cddc7%40googlegroups.com
>>
>> <https://groups.google.com/d/msgid/django-users/57db225c-41bf-43d2-b9d8-ffb3174cddc7%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
--
You received this message because you are subscribed to the Google Groups
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-users/abb4fb48-2c9f-4453-823a-c9def3053b59%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.