我正在尝试与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'是此函数的无效关键字参数
答案 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)