Django 将登录用户与照片模型关联
我基本上想通过使用Django 将登录用户与照片模型关联,django,django-models,Django,Django Models,我基本上想通过使用models.ForeignKey将登录的用户名与PhotoModel关联起来。我在admin.py中重写了safe_模型,但是当我执行views.py类PhotoCreateNew(视图)时,它会在print(form)处停止,并且表单未被验证(if form.is_valid())跳过了整个部分,该部分本应将请求.user设置为photo.user_name,并返回空模板 我的模特 class Photo(models.Model): user_name = models
models.ForeignKey
将登录的用户名与PhotoModel关联起来。我在admin.py中重写了safe_模型,但是当我执行views.py类PhotoCreateNew(视图)时,它会在print(form)
处停止,并且表单未被验证(if form.is_valid()
)跳过了整个部分,该部分本应将请求.user
设置为photo.user_name
,并返回空模板
我的模特
class Photo(models.Model):
user_name = models.ForeignKey(User, on_delete=models.CASCADE)
PLACES = (('RD','研发-R&D'),('Warehouse','仓库-Warehouse'),('Gate','门卫处-Gate Guard'),('SecondFloor','2F生产部'))
photo = models.FileField()
photo_name = models.CharField(max_length=20)
date = models.DateField(auto_now="True")
quantity = models.CharField(max_length=4)
CONDITIONS = (('N','NG'), ('G', 'GOOD'))
condition =models.CharField(max_length=1,choices=CONDITIONS)
place = models.CharField(max_length=30,choices=PLACES,default='Warehouse')
def __str__(self):
return self.photo_name
def get_absolute_url(self):
return reverse('photo:photo_detail', kwargs={'pk':self.pk})
class PhotoForm(ModelForm):
class Meta:
model = Photo
fields =['user_name','photo','photo_name','quantity','condition','place']
exclude= ('user_name',)
我的admin.py:
from django.contrib import admin
from photo.models import Photo
from photo.models import Supplier
class PhotoAdmin(admin.ModelAdmin):
def save_model(self, request, obj, form, change):
if not obj.pk:
obj.user_name = request.user
obj.save()
admin.site.register(Supplier,)
admin.site.register(Photo, PhotoAdmin)
My views.py:
class PhotoCreateNew(View):
form_class = PhotoForm
template_name = 'photo/photo_form.html'
def get(self, request):
form =self.form_class(None)
return render(request, self.template_name, {'form':form})
def post(self,request):
form = self.form_class(request.POST)
print(request.user)
print(form)
if form.is_valid(): # uploader has been excluded. No more error.
print("Przeszlo")
photo = form.save(commit=False) # returns unsaved instance
photo.user_name = request.user
print(request.user)
photo.save() # real save to DB.
return redirect('photo:photo_detail')
return render(request,self.template_name,{})
在使用request.POST和request.FILES初始化表单类之后,它正在工作。 我必须替换:
form = self.form_class(request.POST)
与:
form = self.form_class(request.POST, request.FILES)
打印
form.errors
。另外,共享request.POST
的内容。是否确实要覆盖管理中的save\u模型。这在views.py中不会有任何影响。您不想覆盖模型中的save方法吗?@SachinKukreja form.errors是:- 照片
- 此字段是必需的。