У меня есть простая функция просмотра, которая разработана, чтобы позволить пользователю выбирать из элементов, перечисленных в таблице HTML (записи). Нажатие на запись должно отвлечь пользователя от шаблона, из которого он может редактировать эту конкретную запись. Код выглядит следующим образом:
def edit_record(request):
if request.method == 'POST':
a=ProjectRecord.objects.get()
form = RecordForm(request.POST, instance=a)
if form.is_valid():
form.save()
return HttpResponseRedirect('/')
else:
a=ProjectRecord.objects.get()
form = RecordForm(instance=a)
return render_to_response('productionModulewire.html', {'form': form})
Проблема в том, что функция работает отлично, ТОЛЬКО при условии, что в базе данных есть только 1 запись. Как только я добавляю другой, я получаю ошибку множественного возвращенного элемента.
Я подозреваю, что это как-то связано с "objects.get ()", но я не знаю, как правильно структурировать представление?
URL-адрес прост (возможно, слишком много):
(r'^edit/', edit_record),
и модель выглядит так:
class ProjectRecord(models.Model):
client = models.CharField(max_length=50, choices=CLIENT_CHOICES)
account = models.CharField(max_length=50, choices=ACCOUNT_CHOICES)
project_type = models.CharField(max_length=50, choices=TYPE_CHOICES)
market = models.CharField(max_length=50, choices=MARKET_CHOICES)
agencyID = models.CharField(max_length=30, unique=True, blank=True, null=True)
clientID = models.CharField(max_length=30, unique=True, blank=True, null=True)
prjmanager = models.CharField(max_length=64, unique=False, blank=True, null=True)
acclead = models.CharField(max_length=64, unique=False, blank=True, null=True)
artdirector = models.CharField(max_length=64, unique=False, blank=True, null=True)
prdlead = models.CharField(max_length=64, unique=False, blank=True, null=True)
intlead = models.CharField(max_length=64, unique=False, blank=True, null=True)
prjname = models.CharField(max_length=200, unique=True)
prjstatus = models.CharField(max_length=50, choices=STATUS_CHOICES)
as_of = models.DateField(auto_now_add=False)
format = models.CharField(max_length=64, unique=False, blank=True, null=True)
target_studio = models.DateField(unique=False, blank=True, null=True)
mech_return = models.DateField(unique=False, blank=True, null=True)
comp_return = models.DateField(unique=False, blank=True, null=True)
target_release = models.DateField(unique=False, blank=True, null=True)
record_added = models.DateField(auto_now_add=True)
record_modified = models.DateTimeField()
studio_name = models.CharField(max_length=64, unique=False, blank=True, null=True)
studio_process = models.CharField(max_length=64, unique=False, blank=True, null=True, choices=PROCESS_CHOICES)
to_studio = models.DateTimeField(unique=False, blank=True, null=True)
from_studio = models.DateTimeField(unique=False, blank=True, null=True)
studio_name2 = models.CharField(max_length=64, unique=False, blank=True, null=True)
studio_process2 = models.CharField(max_length=64, unique=False, blank=True, null=True, choices=PROCESS_CHOICES)
to_studio2 = models.DateTimeField(unique=False, blank=True, null=True)
from_studio2 = models.DateTimeField(unique=False, blank=True, null=True)
comments = models.TextField(max_length=500, unique=False, blank=True, null=True)
summary = models.TextField(max_length=500, unique=False, blank=True, null=True)
upload_pdf = models.CharField(max_length=50, unique=False, blank=True, null=True)
upload_achive = models.CharField(max_length=50, unique=False, blank=True, null=True)
def __unicode__(self):
return u'%s' % self.prjname
class Admin:
pass
, из которой была получена форма модели "RecordForm".