Ошибка: не удается разрешить ключевое слово «id» в поле - PullRequest
0 голосов
/ 24 сентября 2019
class Profile(models.Model):
    name=models.CharField(max_length=20, primary_key=True )
    age=models.IntegerField()

    def __str__(self):
        return self.name

class Like(models.Model):
    user=models.ForeignKey(Profile,on_delete=models.CASCADE)
    choice_text = models.CharField(max_length=200)
    like=models.IntegerField(default=0)

    def __str__(self):
        return self.choice_text

в команде оболочки python manage.py:

    from database.models import Profile, Like 
    p=Profile(name='test', age=66)
    p.save()
    p.id

AttributeError                            Traceback (most recent call last)
<ipython-input-35-25ec00f2e4bf> in <module>
----> 1 p.id

Но если вы последуете примеру на www.djangoproject.com, вы увидите, что p.id равен 1.

Любая помощь будет полезна для понимания баз данных, так как я никогда не работал с базами данных.

1 Ответ

5 голосов
/ 24 сентября 2019

Ваша модель имеет поле primary_key name.

Поэтому, если вы сохраните () вашу модель, у нее не будет поля с именем id, так как это поле по умолчанию primary_key.если вы не определили ничего.

Вы можете получить доступ к primary_key по obj.pk (или obj.name в вашем случае).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...