1

我正在尝试与 django 中的关系

楷模

class File(models.Model):
    name = models.CharField(max_length=255)
    src = models.FileField(upload_to="files"

class UserBuyFile(models.Model):
    user = models.ForeignKey(User)
    files = models.ManyToManyField(File)

视图.py

def buy_file(request,id):
    f = File.objects.get(id=id)
    user_buy_file = UserBuyFile.objects.create(files=f,user=request.user)

我有这个错误:

'files' 是此函数的无效关键字参数

4

2 回答 2

1

这不是ManyToManyFields 的填充方式。首先创建并保存模型,然后在现场使用管理器。

于 2013-06-22T06:48:45.817 回答
0

试试这个:

def buy_file(request,id):
    f = File.objects.get(id=id)
    user_buy_file, dummy_created = UserBuyFile.objects.get_or_create(user=request.user)
    user_buy_file.files.add(f)

我还建议您为模型unique=True中的字段设置:userUserBuyFile

class UserBuyFile(models.Model):
    user = models.ForeignKey(User, unique=True)
    files = models.ManyToManyField(File)
于 2013-06-22T07:37:30.437 回答