我正在构建一个Django应用程序与遗留数据库。我有一个模型,LIST,它来自那个传统数据库,不能真正改变。我也使用标准的Django用户模型。理想情况下,这是我想要发生的事情。用户注册后,注册后重定向创建一个新的LIST对象。一旦创建了新的列表对象,用户就会重定向到包含刚刚创建的LIST对象的数据的视图。一次后续登录,用户将被带回包含它们创建的LIST对象的数据的视图。截至目前我已经扩展了用户模型是这样的:Django - 只显示对象创建用户
我ListForm看起来是这样的:
class ListForm(ModelForm):
error_css_class = 'text-error'
required_css_class = 'text-required'
class Meta:
model = models.List
fields = ('t_handle', 'facebook_id', 'pinterest_id', 'yelp_id', 'foursquare_id', 'yipit_id',)
我views.py看起来是这样的:
def user_signup(request):
if request.method == 'POST':
form = forms.UserSignupForm(data=request.POST)
if form.is_valid():
user = form.save()
g = Group.objects.get(name='test_group')
g.user_set.add(user)
# log user in
username = form.cleaned_data['username']
password = form.cleaned_data['password1']
user = authenticate(username=username, password=password)
login(request, user)
messages.success(request, u'Welcome to Social FollowUp')
return redirect('user_create')
else:
form = forms.UserSignupForm()
return TemplateResponse(request, 'user_signup.html', {
'form': form,
})
@login_required
@permission_required('')
def user_create(request):
if request.method == 'POST':
list_form = forms.ListForm(request.POST)
if list_form.is_valid():
list_create = list_form.save()
messages.success(request, 'List {0} created'.format(list_create.list_id))
return redirect(reverse('user_dashboard', args=(2,))) # 2 is just an example
else:
list_form = forms.ListForm()
return TemplateResponse(request, 'dashboard/create.html', {'list_form': list_form, })
def user_dashboard(request, list_id):
try:
list_id = models.List.objects.get(pk=list_id)
except models.List.DoesNotExist:
raise Http404
return TemplateResponse(request, 'dashboard/view.html', {'list_id': list_id})
最后我的urls.py包含这个:
url(r'user/signup/$', views.user_signup, name='user_signup'),
url(r'u/dashboard/(?P<list_id>\d+)/$', views.user_dashboard, name='user_dashboard'),
url(r'u/list/create/$', views.user_create, name='user_create'),
基本上我不知道如何让我想要发生的事情发生。每当用户注册并创建一个LIST对象时,list_id都不会保存到我创建的userProfile表中。我甚至不确定我需要那张桌子。有人可以帮我在这里吗?
您的ListForm如何查看? – karthikr
我刚刚更新了我的ListForm的帖子。 –