Get Primary Key after Saving a ModelForm in Django

2024/11/19 23:34:08

How do I get the primary key after saving a ModelForm? After the form has been validated and saved, I would like to redirect the user to the contact_details view which requires the primary key of the contact.

def contact_create(request):if request.method == 'POST':form = ContactForm(request.POST)if form.is_valid():form.save()return HttpResponseRedirect(reverse(contact_details, args=(form.pk,)))else:form = ContactForm()
Answer

The ModelForm's save method returns the saved object.

Try this:

def contact_create(request):if request.method == 'POST':form = ContactForm(request.POST)if form.is_valid():new_contact = form.save()return HttpResponseRedirect(reverse(contact_details, args=(new_contact.pk,)))else:form = ContactForm()
https://en.xdnf.cn/q/26385.html

Related Q&A

f.write vs print f

There are at least two ways to write to a file in python:f = open(file, w) f.write(string)orf = open(file, w) print >> f, string # in python 2 print(string, file=f) # in python 3Is there a d…

How can I send a message to someone with my telegram bot using their Username

I am using the telepot python library, I know that you can send a message when you have someones UserID(Which is a number). I wanna know if it is possible to send a message to someone without having th…

Convert a str to path type?

I am trying to interface with some existing code that saves a configuration, and expects a file path that is of type path.path. The code is expecting that the file path is returned from a pygtk browse…

Partially transparent scatter plot, but with a solid color bar

In Python, with Matplotlib, how to simply do a scatter plot with transparency (alpha < 1), but with a color bar that represents their color value, but has alpha = 1?Here is what one gets, with from…

Semaphores on Python

Ive started programming in Python a few weeks ago and was trying to use Semaphores to synchronize two simple threads, for learning purposes. Here is what Ive got: import threading sem = threading.Semap…

Overload () operator in Python

I am trying to learn currying in Python for my class and I have to overload the () operator for it. However, I do not understand how can I can go about overloading the () operator. Can you explain the …

Python pandas apply function if a column value is not NULL

I have a dataframe (in Python 2.7, pandas 0.15.0):df=A B C 0 NaN 11 NaN 1 two NaN [foo, bar] 2 three 33 NaNI want to apply a simple function for ro…

python pip trouble installing from requirements.txt

Ive had great luck with pip in the past, but working at installing some stuff in a venv on is giving me some headaches. I keep getting errors likeNo distributions at all found for somepackage Storing d…

Using py.test with coverage doesnt include imports

For Jedi we want to generate our test coverage. There is a related question in stackoverflow, but it didnt help.Were using py.test as a test runner. However, we are unable to add the imports and other…

Determine if a Python class is an Abstract Base Class or Concrete

My Python application contains many abstract classes and implementations. For example:import abc import datetimeclass MessageDisplay(object):__metaclass__ = abc.ABCMeta@abc.abstractpropertydef display(…