Я создал свою модель, на которую authUser ссылается как на внешний ключ, затем с помощью API формы django я пытаюсь сохранить данные в моей БД, но мое поле пользователя остается пустым.
Я использовал встроенный API-интерфейс FORMчтобы получить загруженный файл и перед сохранением моего файла, я также сохраняю имя файла. Я пытался сделать то же самое для userField, но Django бросить ValueError.
Models.py
class sample(models.Model):
user = models.ForeignKey(User, on_delete=models.SET_NULL, null=True ,default=1)
submit_time = models.DateTimeField(auto_now=True)
file_name = models.CharField(max_length=1024)
score = models.FloatField(default=0.0)
is_pending = models.BooleanField(default=True)
is_complete = models.BooleanField(default=False)
json_URL = models.FilePathField()
sample = models.FileField(upload_to='samples/')
Views.py
@login_required
def upload(request):
if request.method == 'POST':
file = request.FILES['sample']
form = SampleForm(request.POST, request.FILES)
if form.is_valid():
new_sample = form.save(commit=False)
new_sample.file_name = file.name
new_sample.user = User.id #throws ValueError Cannot assign "sample.user" must be a "User" instance.
form.save()
return redirect('reports')
else:
print("form is invalid")
else:
form = SampleForm()
if request.method == 'GET':
return render(request, 'upload2.html', {'form': form})
forms.py
class SampleForm(forms.ModelForm):
class Meta:
model =sample
fields=('sample',)
Моя цель - сохранить идентификатор пользователя в моей БД, чтобы я знал, кто загрузил файл.