2017-02-08 5 views
0

現在、Python 3でDjangoを使用しているサイトで作業しています。サイトでは、好きなプロジェクトに従うことができ、thotプロジェクト存在する。ここに私のサイトのモデルがあります。DjangoモデルのManyToManyFieldが予期せずに配置されました

これは、すべてのプロジェクトのためのモデルである私のチームモデルは、私がこのモデルで多対多のフィールドを持っている、あなたは

class Team(models.Model): 
    user = models.ForeignKey(settings.AUTH_USER_MODEL, related_name='team') 
    created_at = models.DateTimeField(auto_now_add=True) 
    modified_at = models.DateTimeField(auto_now=True) 
    title = models.CharField(max_length=255) 
    description = models.TextField() 
    image = models.ImageField(upload_to='images/team_images', blank=True) 
    roster = models.TextField(blank=True, default='') 
    current_raise = models.IntegerField(blank=True, default=0) 
    # current_backers = models.IntegerField(blank=True, default=0) 
    time_left = models.DateTimeField(blank=True, default=timezone.now) 
    raising_minimum = models.PositiveIntegerField(blank=False) 
    raising_maximum = models.PositiveIntegerField(blank=False) 
    duration = models.DateTimeField(blank=False) 

    def __str__(self): 
     return self.title 

これは、ユーザー・プロファイル・モードであるに従うことができます。

class UserProfile(models.Model): 
    user = models.OneToOneField('accounts.User') 
    following = models.ManyToManyField(Team,     related_name='user_following', blank=True) 

    def __str__(self): 
     return self.user.first_name 

    def save(self, *args, **kwargs): 
     if self.pk: 
      for team in self.following: 
       team.save() 
     super(UserProfile, self).save(*args, **kwargs) 

問題は、私は、データベースをチェックしたときに、私はテストのために作成したすべてのチームがユーザーはまだ、それらに従うことを要求していないにもかかわらず、フィールドfollowingである、です。

私が作成したチームはすべて、管理ページの「フォロー」の下に表示されました。 enter image description here

+0

あなたは、管理者のドロップダウンメニューにすべてのチームが表示されることを意味しますか? – schwobaseggl

+1

「彼らは次の分野にいる」という意味ですか? m2mは、UserProfileとTeamの間に別のテーブルを作成する必要があります。 –

+0

@schwobasegglこんにちは、自分の投稿を編集しました。自分の管理ページのスクリーンショットを追加しました。私が作成した3つのチームがあります。ユーザーがまだフォローしていないので、まだそこにいるとは思われません。 –

答えて

0

管理サイトのm2mの複数選択フィールドに表示されるオプションは、選択できるオプションです。 Django adminの動作が期待されます。いくつかのオプションを選択するには、項目をクリックするか、CTRLを押しながら複数のクリックを選択することができます。

+0

あなたに連絡する最も良い方法は何ですか?私はこのサイトを初めて利用しています。 –

+0

@RobertLiプロフィールまたはチャットにメールがあるかどうかを確認します。それ以外の場合は、Gmailの「私の姓」にメールを送信してください。 –

関連する問題