Модель такая:
class Picture(models.Model):
ID = models.IntegerField(primary_key=True)
name = models.CharField(max_length=256)
pic_file = models.ImageField(upload_to='media/images')
Форма такая:
class PictureUploadForm(forms.ModelForm):
name = forms.CharField(max_length=256, help_text="Enter picture name:")
pic_file = forms.ImageField(help_text='Choose your file:')
class Meta:
model = Picture
fields = ('name', 'pic_file',) #Ещё один вопрос мимоходом. Здесь указываются поля, содержимое которых переносится в модель автоматически, так?
Вид, на всякий случай, такой:
def add_picture(request):
if request.method == 'POST':
form = PictureUploadForm(request.POST, request.FILES)
if form.is_valid():
form.save(commit=True)
else:
print form.errors
else:
form = PictureUploadForm()
return render(request, 'add_picture.html', {'form': form})
Картинка сохраняется с тем же именем, которое было у неё при загрузке. То есть, как у пользователя. А мне нужно, чтобы ей выдавалось имя вида < ID>.<расширение>, т. к. у меня ID является primary_key и не повторяется. Как это сделать?