2013-06-22 61 views
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) 

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' is an invalid keyword argument for this function

回答

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) 

我還建議你在模型UserBuyFile設置unique=True田間user

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

這不是如何填充ManyToManyField。首先創建並保存模型,然後在該字段上使用manager