【问题标题】:Create Django model object with foreign key使用外键创建 Django 模型对象
【发布时间】:2021-10-30 09:48:42
【问题描述】:

我尝试了很多不同的方法,但似乎无法得到它。

我将“TeamName”作为“MLBGame”的外键。我一直在尝试创建新的 MLBGame 对象,但由于外键而无法使其正常工作。正确的做法是什么?

我尝试过查询外键,例如: team = TeamName.objects.get(name=whatevername) 我尝试使用 (name__name=whatevername)

然后将团队变量插入到新对象中以创建但不行。

非常感谢您提供的任何帮助,我已经为此工作了一段时间,而 Django 文档只是让我绕圈子。

Models

class TeamName(models.Model):

    name = models.CharField(max_length=100, null=False, blank=False)
    abbreviation = models.CharField(max_length=100, null=False, blank=False)
    twitter_id = models.CharField(max_length=100, default=name)

    def __str__(self):
        return self.name

class MLBGame(models.Model):
    gameID = models.IntegerField(null=True, blank=True)
    name = models.ForeignKey('TeamName',
                             null=False, blank=False, on_delete=models.CASCADE)


    other stuff
team = TeamName.objects.get(name=game.away_team)

MLBGame.objects.update_or_create(
                    gameID=gameID, defaults={
                        'name': team.name,
                         Other Stuff}
                     )

【问题讨论】:

  • 你能把错误贴在这里吗?
  • django.core.exceptions.FieldError: 不支持查找 CharField 的“名称”或不允许加入该字段。

标签: django django-models model


【解决方案1】:

解决了我的问题。我试图从 TeamName 对象中获取名称。 在 MLBGame.objects.update_or_create 我有'name':team.name。应该只是团队。

Correct code:


team = TeamName.objects.get(name=somename)

MLBGame.objects.update_or_create(
                    gameID=gameID, defaults={
                        'name': team}
                     )

【讨论】:

    猜你喜欢
    • 2011-05-10
    • 2023-01-02
    • 2015-05-20
    • 2016-06-11
    • 1970-01-01
    • 2013-10-01
    • 1970-01-01
    • 2019-01-17
    • 2020-09-23
    相关资源
    最近更新 更多