很多人。 files是此函数的无效关键字参数

时间:2013-06-22 06:46:32

标签: django

我正在尝试与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)

views.py

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

我有这个错误:

  

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

2 个答案:

答案 0 :(得分:1)

这不是ManyToManyField的填充方式。首先创建并保存模型,然后在字段上使用manager

答案 1 :(得分: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中的字段user设置UserBuyFile

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