につながり、次IntegrityErrorが表示されます。ユーザーのサインアップは、ユーザーサインアップ後IntegrityError
IntegrityError at /users/signup
(1062, "Duplicate entry '1' for key 2")
ユーザーがエラーを取得するにもかかわらず、彼は定期的にログインできます。ユーザーは、UserProfileと共に作成されます。ここで
は、エラーの原因/ユーザー/サインアップ図である。ここでは
def signup(request):
signup_form = SignupForm(request.POST)
#goal = request.POST.get('goal')
goal = None
if signup_form.is_valid():
username = signup_form.cleaned_data['username']
email = signup_form.cleaned_data['email']
password = signup_form.cleaned_data['password']
user = User.objects.create_user(username, email, password)
user = authenticate(username=username, password=password)
login(request, user)
return HttpResponseRedirect("/")
else:
return render_to_response("authorize.html", {'signup_form': signup_form, 'goal': goal}, context_instance=RequestContext(request))
は私/user/models.pyです:
from django.db import models
from django.contrib.auth.models import User
from django.db.models.signals import post_save
from main.models import Goal
class UserProfile(models.Model):
user = models.OneToOneField(User)
joined_goals = models.ManyToManyField(Goal, related_name="joined_goals")
followingGoals = models.ManyToManyField(Goal, related_name="following_goals")
def __unicode__(self):
return self.user.username
def get_goals(self):
try:
goals = Goal.objects.filter(user=self.user)
return goals
except Goal.DoesNotExist:
return []
def create_user_profile(sender, instance, created, **kwargs):
if created:
userProfile = UserProfile.objects.create(user=instance)
post_save.connect(create_user_profile, sender=User)
私は内のすべての表をドロップしました私のMySQLデータベースを複数回実行し、python manage.py syncdbを実行しますが、新しいユーザーを作成した後も毎回同じエラーが発生します。
編集:私のローカルホスト上でこのエラーは発生しません。リモートホスト上でのみ発生します。私はローカルホスト上でsqliteを使用し、リモートホスト上ではmysqlを使用します。
関連するビューをポストします。 get_goals(self)を単純に 'def get_goals(self) 'に単純化することもできます:return Goal.objects.filter(user = self.user)'( 'filter'は何もマッチしなければ空の' QuerySet'を返し、 t raise 'DoesNotExist') –
他のシグナルハンドラはありませんか? – ilvar
関連するビューを追加しました。私が持っている唯一のシグナルハンドラは、新しいユーザプロファイルを作成します。 – egidra