레거시 DB가있는 장고 응용 프로그램을 구축하고 있습니다. 나는 그 레거시 DB에서 왔고 실제로 변경할 수없는 하나의 모델, LIST를 가지고있다. 나는 표준 Django 사용자 모델을 사용하고있다. 이상적으로 이것은 내가 원하는 일입니다. 사용자가 등록한 후 가입 후 새 LIST 개체를 만들기 위해 리디렉션됩니다. 새 목록 개체가 만들어지면 사용자는 방금 만든 LIST 개체의 데이터가 들어있는보기로 리디렉션됩니다. 후속 로그인 한 사용자는 자신이 만든 LIST 객체의 데이터가 포함 된 뷰로 돌아갑니다. 지금의 나는이 같은 사용자 모델을 확장 한 :장고 - 객체 만 표시 사용자 생성
class UserProfile(models.Model):
user = models.OneToOneField(User)
list_id = models.OneToOneField(List, null=True)
def create_profile(sender, instance, created, **kwargs):
if created:
profile, created = UserProfile.objects.get_or_create(user=instance)
post_save.connect(create_profile, sender=User)
내 ListForm은 다음과 같습니다
내 views.py는 다음과 같습니다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',)
: 마지막으로
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 테이블에 저장되지 않습니다. 나는 그 테이블이 필요하다고 100 % 확신하지 못한다. 누군가 나를 좀 도와 주실 수 있습니까? 당신의 user_create
보기에서
어떻게 ListForm이 보이나요? – karthikr
방금 내 ListForm으로 게시물을 업데이트했습니다. –