Simple Django вопрос сохранения формы / модели

Я хочу установить для BooleanField inuse значение True, когда я сохраняю ModelForm (я использую форму вне области администратора). ) и я не уверен, как это сделать.

Модели:

class Location(models.Model):
    place = models.CharField(max_length=100)
    inuse = models.BooleanField()

class Booking(models.Model):
    name = models.CharField(max_length=100, verbose_name="Your name*:")
    place = models.ManyToManyField(Location, blank=True, null=True)

Формы:

class BookingForm(ModelForm):

    class Meta:
        model = Booking

        def save(self, commit=True):
            booking = super(BookingForm, self).save(commit=False)
            if commit:
                booking.save()
                self.save_m2m()
                for location in booking.place.all():
                    location.inuse = True
                    print location #nothing prints
                    location.save()

Вид:

def booking(request):
    form = BookingForm()
    if request.method == 'POST':
        form = BookingForm(request.POST)
        if form.is_valid():
            form.save()
        else:
            form = form

        return render_to_response('bookingform.html', {
                'form': form,
            })

Обновлено до последней версии (см. Ответ Маноя Говиндана ). Он все еще не обновляет inuse до True при отправке / сохранении. Кратчайший путь (1) :: RV3280-RV2502C Кратчайший путь (2) :: RV3280-RV2501C-RV1263 Кратчайший путь (2) :: RV2363-Rv3285 -...

У меня есть файл журнала, содержащий следующие данные:

Кратчайший путь (2) :: RV3280-RV0973C-RV2888C
Кратчайший путь (1) :: RV3280-RV2502C
Кратчайший путь (2) :: RV3280-RV2501C-RV1263
Кратчайший путь (2) :: RV2363-Rv3285-RV3280

Из каждой строки мне требуется номер в скобках, имя первого белка (RV3280 в первой строке) и имя последнего белка (RV2888C в первая строка).

Я написал код для этого с помощью объекта Scanner .

try{
                Scanner s = new Scanner(new File(args[0]));
                while (s.hasNextLine()) {
                    s.findInLine("Shortest path\\((\\d+)\\)::(\\w+).*-(\\w+)"); // at each line, look for this pattern
                    MatchResult result = s.match(); // results from
                    for (int i=1; i<=result.groupCount(); i++) {
                        System.out.println(result.group(i));
                    }
                    s.nextLine(); // line no. 29
                }
                s.close();
        }

        catch (FileNotFoundException e) {
            System.out.print("cannot find file");
        }

Я получаю желаемые результаты, но также получаю сообщение об ошибке. Вывод, который я получаю для указанного выше входного файла:

Exception in thread "main" java.util.NoSuchElementException: No line found
        at java.util.Scanner.nextLine(Scanner.java:1516)
        at nearnessindex.Main.main(Main.java:29)
2
RV3280
RV2888C
1
RV3280
RV2502C
2
RV3280
RV1263
2
RV2363
RV3280
Java Result: 1
BUILD SUCCESSFUL (total time: 1 second)

Почему возникает эта ошибка и как ее можно исправить?

7
задан skaffman 8 May 2011 в 09:51
поделиться