Thank you! Yes, I forgot about the csrf. You are right, it would be 
difficult to fake the CSRF string.

Just in general, is it a good idea to expose primary keys like this? 
sometimes you can see them in urls too, like: www.yoursite/blog/1/,  1 
would be the primary key of a blog.

On Wednesday, 27 May 2015 22:01:37 UTC+8, Matthias Müller wrote:
>
> Without looking at the link I guess that you explantion is more or less 
> correct. 
>
> But it's not a security issue that the database is updated by a form. It 
> has to be updated by a form. To make it a correct django form there is a 
> hidden field with the CSRF token. This protects the database being updated 
> from any illegal source. 
>
> In your example there is this csrf missing, Most probably for didactical 
> reasons. 
>
> Refer to https://docs.djangoproject.com/en/1.8/ref/csrf/
>
> Cheers
> Matthias
>
> 2015-05-27 15:47 GMT+02:00 Cheng Guo <[email protected] <javascript:>>:
>
>> Hello,
>>
>> I have a formset and when I render it, Django would include this line in 
>> the HTML:
>>
>> <input id="id_form-0-id" name="form-0-id" type="hidden">
>>
>> I am curious what is the purpose of having an id field here. 
>>
>> I mean in what situation would you use it. I did look through Django's 
>> documentation 
>> on formset 
>> <https://docs.djangoproject.com/en/1.8/topics/forms/formsets/#can-delete>but 
>> cannot find much documentation on this.
>> One answer I got is that this id field is the value of the primary key of 
>> the model bound to this form. It is there so that when the formset updates, 
>> people can use it to retrieve the corresponding record from the database.
>>
>> Is the above explaination correct?
>>
>> If this explaination is correct, then my next question is, wouldn't it be 
>> dangerous to expose the primary key like that? I can make a post call to 
>> your server with a modified pk which can mess up your database.
>>
>> Thank you!
>>
>> -- 
>> 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 http://groups.google.com/group/django-users.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/django-users/18e0d250-c4a9-4060-ae4f-19afb57566e0%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/django-users/18e0d250-c4a9-4060-ae4f-19afb57566e0%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 http://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/285ee494-8b28-42cd-8af9-4cb33983a82c%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to