0

私は次のurls.pyを持っています

urlpatterns = patterns('accounts.views',
  url(r'^user/(?P<id>\w+)/$', 'profile'),
)

私は次のviews.pyを持っています

def profile(request, id):
  user = UserProfile.objects.get(user__username=id)
  product = Mattress.objects.filter(owner = id)   #PROBLEM IS IN THIS LINE
  c = RequestContext(request, {
    'action': 'update/',
    'button': 'Update', 
    'profile': user,
    'product': product,
  })
  return render_to_response('registration/user_profile.html', c)

URL「http://127.0.0.1:8000/user/goelv/」を入力すると、ID「goelv」が正常にキャプチャされます。ただし、エラー < 基数 10 の int() の無効なリテラル: 'goelv' > が表示されます。

参考までに、所有者フィールドが単純に User オブジェクトに関連付けられている次の models.py があります。

class Product(models.Model):
  owner = models.ForeignKey(User, null=True, blank=True)
  title = models.CharField(max_length=50)
  manufacturer = models.CharField(max_length=75)
  product_description = models.TextField(max_length=2000)

私が間違っていることや、この問題を解決する方法を誰かが見ることができますか? 助けてくれてありがとう!

4

1 に答える 1

2

を参照している場合は、文字列idであってはなりintegerません。

ただし、これで問題は解決します。

product = Mattress.objects.filter(owner = user)

注:すでにユーザーオブジェクトを取得しているため、フィルターuserの代わりに使用してください。id

于 2012-08-14T05:21:54.387 に答える