拥有func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView {
switch kind {
case UICollectionView.elementKindSectionHeader:
let headerView = ViewPlayerHeader.init(frame: CGRect(x: 0, y: 0, width: self.collectionViewInfo.frame.size.width, height: 50))
return headerView
default:
assert(false, "Unexpected element kind")
}
}
AttributeError
从here获取示例。我不明白是什么问题
models.py
'QueryDict' object has no attribute 'first_name'
views.py
class Employee(models.Model):
first_name = models.CharField(max_length=30)
second_name = models.CharField(max_length=30)
patronymic = models.CharField(max_length=30)
birth_date = models.DateField()
参数def edit_employee_action(request, employee_id):
if request.method == "POST":
form = AddEmployeeForm(request.POST)
if form.is_valid():
edited = Employee.objects.filter(pk=employee_id)
edited.update(
first_name = request.POST.first_name,
second_name = request.POST.second_name,
patronymic = request.POST.patronymic,
birth_date = request.POST.birth_date
)
else:
form = AddEmployeeForm()
form = AddEmployeeForm()
return render(
request,
'edit_employee.html',
context={'form': form}
)
是正确的(已调试)。
答案 0 :(得分:2)
您需要像这样从request.POST
获取值:
request.POST['first_name']
(如果first.name在request.POST中不可用,此方法将引发KeyError)
或
request.POST.get('first_name')
答案 1 :(得分:2)
您使用的request.POST
错误。它实际上是一本字典。请尝试以下操作。
def edit_employee_action(request, employee_id):
if request.method == "POST":
form = AddEmployeeForm(request.POST)
if form.is_valid():
edited = Employee.objects.filter(pk=employee_id)
edited.update(
first_name = request.POST.get('first_name'),
second_name = request.POST.get('second_name'),
patronymic = request.POST.get('patronymic'),
birth_date = request.POST.get('birth_date')
)
else:
form = AddEmployeeForm()
form = AddEmployeeForm()
return render(
request,
'edit_employee.html',
context={'form': form}
)
这样,即使键不存在,您也会得到一个None
值而不是一个异常。另外,请确保模板中的键值相同。