0
ユーザー登録のためのuserenaとサインアップ後に記入するためのカスタムフォームを使用して簡単なWebサイトを作成します。Djangoは登録後にフォームを保存しません
しかし、アカウントが作成され、フォーム送信データが保存されていない場合。
私はフォームを更新し、すべての作業を再送信すると、しかしない新鮮サインアップ/サインイン後〜1分後に私のコード
models.py
from cms.models.pluginmodel import CMSPlugin
from django.db import models
from django.contrib.auth.models import User
class Game(models.Model):
name = models.CharField(max_length=100)
slug = models.CharField(max_length=50)
def __str__(self):
return self.name
class Tournament(models.Model):
name = models.CharField(max_length=100)
slug = models.CharField(max_length=50)
game = models.OneToOneField(
Game,
on_delete=models.CASCADE,
verbose_name="related game",
)
def __str__(self):
return self.name
class TeamMember(models.Model):
name = models.CharField(max_length=100, unique=True)
def __str__(self):
return self.name
class Team(models.Model):
name = models.CharField(max_length=100)
official = models.BooleanField(default=False)
tournaments = models.ManyToManyField(Tournament, blank=True)
user = models.OneToOneField(User, related_name='created_by')
team_member = models.ManyToManyField(TeamMember, blank=True)
def __str__(self):
return self.name
forms.py
class TeamRegistrationForm(forms.ModelForm):
team_member_1 = forms.CharField(widget=forms.TextInput, label="Team member 1")
team_member_2 = forms.CharField(widget=forms.TextInput, label="Team member 2")
team_member_3 = forms.CharField(widget=forms.TextInput, label="Team member 3")
class Meta:
model = Team
fields = [
'name',
]
def __init__(self, *args, **kwargs):
self.user = kwargs.pop('user', None)
super(TeamRegistrationForm, self).__init__(*args, **kwargs)
def save(self):
data = self.cleaned_data
team = Team(name=data['name'])
team.user = self.user
team.save(commit=False)
team.team_member.get_or_create(name=data['team_member_1'])
team.team_member.get_or_create(name=data['team_member_2'])
team.team_member.get_or_create(name=data['team_member_3'])
team.save()
があります
誰かがアイデアを持っている場合は、おかげであなたがフォームセットを使用するつもりはない場合は、チームとチームメンバー
用フォームセットのための一つの形式を使用する必要があり、多く
私はエラーが発生しました。 "int()引数は文字列、バイトのようなオブジェクトまたは数字でなければなりません。" TeamMember "ではありません"助けてくれてありがとうございます – Bast
@Bastチームは保存されますか?問題はメンバーですか?変数をステップごとに印刷して、それらが何でどこに問題があるかを確認してください。エラーページでエラーの原因となった行を確認することもできます。あなたが問題を見つけることができなかった場合は、私がチェックできるように印刷とエラー行の詳細を教えてください。がんばろう。 – Navid2zp