В калитке, как я могу создать RadioGroups, которые не определены иерархией / компоновкой компонентов?

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

Количество групп варьируется - может быть ABC, ABCD, ABCDE и т. Д.

Я бы хотел, чтобы переключатели были сгруппированы вертикально.

<ul>
  <li>
    <ul>
       <li><input type="radio" name="A"></li>
       <li><input type="radio" name="B"></li>
       <li><input type="radio" name="C"></li>
    </ul>
  </li>
  <li>
    <ul>
       <li><input type="radio" name="A"></li>
       <li><input type="radio" name="B"></li>
       <li><input type="radio" name="C"></li>
    </ul>
  </li>
  <li>
    <ul>
       <li><input type="radio" name="A"></li>
       <li><input type="radio" name="B"></li>
       <li><input type="radio" name="C"></li>
    </ul>
  </li>
</ul>

К сожалению, похоже, что RadioGroup позволяет группировать переключатели только в соответствии с группировкой, определенной их расположением.

Например:

RadioGroup group = new RadioGroup("radioGroupA");

group.add( new Radio("myradio", new Model(1)) ;

Проблема в том, что я не могу затем размещать элементы как я хочу.

Есть ли другой способ? Вручную указать имя и собрать результаты?

ОБНОВЛЕНИЕ: Я заметил, что Radio может принимать RadioGroup в качестве параметра. Таким образом, можно сделать что-то вроде:

// create some groups
for (0..n) {
  RadioGroup group = new RadioGroup("myRadioGroup", new Model { .. } );
  groupArray.add(group)
}

//create a ListView for the RadioGroups so we can attach them to page
ListView radioListView = ListView("radioGroupList") { populate from groupArray }
add(radioListView);

// create our grid of radio buttons
// outer -> rows 
for (0..x) {
  // inner -> columns
  for (0..n)
    // supply group from our groupArray
    add( new Radio("myradio", new Model(1), groupArray.get(n) ));
  }
}

Затем я могу добавить Radio и RadioGroup в форму независимо от макета, что даст желаемый эффект с точки зрения группировки.

<form>
  <span wicket:id="radioGroupList">
     <span wicket:id="radioGroup"/>
  </span>
  <ul> 
    <li><radio wicket:id="myradio"/></li>

Но теперь, когда я отправляю, я получаю следующую ошибку:

WicketMessage: отправлено значение http post [radio33] для компонента RadioGroup [2: tContainer: list: 2: tPanel: myForm: ordersRadioGroupList: 0: ordersRadioGroup] является недопустимым, поскольку не содержит относительного пути к радиокомпоненту. Из-за этого компонент RadioGroup не может разрешить выбранный компонент Radio, на который указывает недопустимое значение. for pt ...

У меня есть такая модель django:

class Profile_Tag(models.Model):
    profile = models.ForeignKey(Profile)
    tag = models.ForeignKey(Tag)

и такой вид:

pts = Profile_Tag.objects.all()
for pt in pts:
    print pt.profile.id

есть ли способ получить доступ к профилю foreignKey, не обращаясь каждый раз к базе данных? Я не хочу запрашивать таблицу профиля. Я просто хочу получить идентификаторы из таблицы Profile_Tag.

11
задан Steve Mayne 8 June 2011 в 18:42
поделиться