ForeignKey
~ Crate
모델의 Jar
속성은 crate
입니다. Crate
모델에는 속성 (보유 할 수있는 jar 수)과 jars
속성 (현재 보유한 jar 수)이 있습니다.이 행은 return self.jar_set.filter(is_active=True).count()
입니다.관리 작업을위한 중간 페이지의 동적 드롭 다운
여러 개의 병을 새 상자로 옮기는 관리 작업이 있습니다. 중간 페이지를 사용하여 대상 크레이트를 선택합니다. 현재 모든 상자가 드롭 다운 목록에 있지만 나열된 상자를 선택한 병의 수만큼 공간이있는 상자로 제한하려고합니다. 방법?
여기 admin.py
에서 관리 작업입니다 :
class MoveMultipleJarsForm(forms.Form):
# This needs to somehow be restricted to those crates that have room
dest = forms.ModelChoiceField(queryset=Crate.objects.all().order_by('number'))
def move_multiple_jars(self, request, queryset):
form = None
if 'apply' in request.POST:
form = self.MoveMultipleJarsForm(request.POST)
if form.is_valid():
dest = form.cleaned_data['dest']
count = 0
for jar in queryset:
jar.crate = dest
jar.save()
count += 1
plural = ''
if count != 1:
plural = 's'
self.message_user(request, "Successfully moved %d jar%s to %s" % (count, plural, dest))
return HttpResponseRedirect(request.get_full_path())
if not form:
form = self.MoveMultipleJarsForm()
return render(request, 'admin/move_multiple_jars.djhtml', {
'jars': queryset,
'move_multiple_jars_form': form,
})
move_multiple_jars.short_description = "Move multiple jars to new crate"