2012-11-09 25 views
28

tôi đã có hai hình thức nối. Về cơ bản, người dùng điền vào biểu mẫu đầu tiên và sau đó được chuyển hướng đến biểu mẫu thứ hai, bổ sung giá trị cho dữ liệu của biểu mẫu đầu tiên. E.G. Tôi đã có một hình thức Movie (hình thức đầu tiên) và sau đó tôi được chuyển hướng đến các hình thức (diễn viên) mà thêm các diễn viên vào bộ phim.django createview cách lấy đối tượng được tạo

trong trường hợp của tôi Movie = Chiamata và diễn viên = Offerta (i giữ tên người Ý cho những gì tôi cần: D)

tốt.

những là url của tôi trong urls.py

url(r'^chiamata/$', ChiamataCreate.as_view(),name='chiamata_create'), 
url(r'^chimamata/(?P<pk>\d+)/offerta$', OffertaCreate.as_view(), name='offerta_create'), 

tôi đã này tạo ra cái nhìn

class ChiamataCreate(CreateView): 
    template_name = 'chiamata_form.html' 
    form_class = ChiamataForm 
    success_url=reverse_lazy('offerta_create',args=(??,)) 

bây giờ vấn đề là làm thế nào tôi có thể lấy PK của đối tượng được tạo ra bởi chiamataForm . Tôi cần điều đó để thêm nó vào url của offerta_create.

Trả lời

33

có lẽ bạn có thể sử dụng phương pháp get_success_url() (see reference)

Trong trường hợp này, nó muốn được một cái gì đó như:

def get_success_url(self): 
    return reverse('offerta_create',args=(self.object.id,)) 
+6

yup nó hoạt động 'def get_success_url (tự): trả về ngược lại ('offerta_create', args = (self.object.id,))' – EsseTi

+0

@EsseTi Khi tôi cố gắng sử dụng 'self.object.id' cách mà bạn đã làm, tôi nhận được 'None' trở lại, mặc dù' self.object' chắc chắn tồn tại và nó được lưu vào cơ sở dữ liệu của tôi (MySQL). Bất kỳ hiểu biết nào về lý do đó sẽ là? –

+1

không thực sự. có thể là nó chưa được lưu lại nên không có id. điều gì sẽ xảy ra nếu u cố gắng truy cập một lĩnh vực khác? – EsseTi

Các vấn đề liên quan