2012-03-23 4 views
3

Мне нужно MultiWidgets, делающего HTML, как следующее как MultiValueField:Джанго - MultiValueField Impementation

<div class="formfield_trailer"> 
    <div class="formfield_title">My Family</div> 
    <select label="My Family" name="family_biodata[]" id="id_my_family_0"> 
    <option value="0">Select One</option> 
    <option value="F">Father</option> 
    <option value="M">Mother</option> 
    </select> 
    <input type="text" size="5" class="family" label="My Parents" id="id_my_family" name="family_biodata[]"> 
    <input type="checkbox" label="My Family" name="family_biodata[]" id="id_my_family_2"> 
    <p><a>Add More<br><br></a></p>  
</div> 

Спасибо заранее. Кроме того, я могу помочь кому-нибудь, чтобы получить подробную ссылку на учебник, поскольку я новичок, а Django Document не указывает многое.

+2

А что вы пытались достичь этого? – DrTyrsa

+1

Я пытался заполнить поле «Выбрать список» текстовым полем и флажком рядом с ним рядом. Также добавьте ссылку More во второй строке, чтобы скопировать поля под ней. Спасибо – ashishanand

ответ

4

Вот проект, иллюстрирующий пример MultiValueField:

https://github.com/justinlilly/django_multiwidget_demo

Вот соответствующий бит от источника этого проекта:

# fields 
from django.forms import fields 
from djnycapp.widgets import AutoCompleteWidget 
from django.contrib.auth.models import User 

class UserAutoCompleteField(fields.MultiValueField): 
    widget = AutoCompleteWidget 

    def __init__(self, *args, **kwargs): 
     """ 
     Have to pass a list of field types to the constructor, else we 
     won't get any data to our compress method. 
     """ 
     all_fields = (
      fields.CharField(), 
      fields.CharField(), 
      ) 
     super(UserAutoCompleteField, self).__init__(all_fields, *args, **kwargs) 

    def compress(self, data_list): 
     """ 
     Takes the values from the MultiWidget and passes them as a 
     list to this function. This function needs to compress the 
     list into a single object to save. 
     """ 
     if data_list: 
      return User.objects.get(id=data_list[0]) 
     return None 
+0

К сожалению, на момент написания ссылки ссылка 404. – Bryce

+1

Ага, это позор - вот еще один пример, который включает в себя код для подкласса виджета: https://gist.github.com/fish2000/5430868 – fish2000

Смежные вопросы