<p>我到处寻找,甚至在两者之间,由于某种原因,我找不到一个明确的答案</p>
<p>我正在使用<code>django1.9</code>并创建了此模型:</p>
<pre><code>class paymentInfo(models.Model):
"""
Model for storing payment info
- Username as ForeignKey from userToCard
- Store payment token
- Store last 4
- Store card/bank name
- Store bool value for Default method
"""
username = models.ForeignKey(User, db_column='username', on_delete=models.CASCADE)
token = models.CharField(max_length=10)
last_4 = models.IntegerField()
bank_name = models.CharField(max_length=50)
default = models.BooleanField(default=0)
class Meta: # meta class to define the table name
db_table = 'payment_methods'
verbose_name_plural = 'Payment Methods' # for the admin site display
ordering = ('username',)
def __str__(self):
# in __str__ you should return a value of type string
# so self.username changed to self.username.username
return self.username.username # value displayed in admin view
</code></pre>
<p>我已经使用一些不同的用户名创建了一些对象,并希望按用户筛选paymentInfo对象</p>
<p>当我存储对象时,数据库将<code>user pk</code>存储在<code>username</code>列下,而不是实际的用户名字符串。我不知道为什么,但这不是我的问题</p>
<p>我的问题是当我试图使用<code>username</code>或<code>user pk</code>筛选出<code>paymentInfo.objects</code>时。我似乎无法过滤掉它,因此我通常得到的错误是:<code>FieldError: Cannot resolve keyword 'username' into field. Choices are: bank_name, default, id, last_4, token</code></p>
<p>另外,我正在使用MySQL</p>