J'utilise un formset pour mettre à jour une liste de propriétés d'un ingrédient.Django: comment accéder à l'instance de l'ensemble de requêtes dans la mise en page de FormHelper
IngredientFormSet = modelformset_factory(Ingredient, form=IngredientForm, extra=0)
formset = IngredientFormSet(queryset=ingredients_dictinct)
# I am passing a list of ingredients as queryset
helper = RecipeIngredientFormSetHelper()
Ma forme de code d'aide est:
class RecipeIngredientFormSetHelper(FormHelper):
def __init__(self, *args, **kwargs):
super(RecipeIngredientFormSetHelper, self).__init__(*args, **kwargs)
self.form_method = 'post'
self.layout = Layout(
Div(
Div(HTML("{{ forloop.counter }}"),
css_class='col-xs-2', style='text-align:center'),
Div('name', css_class='col-xs-2',),
Div('munit', css_class='col-xs-2',),
Div('rate', css_class='col-xs-2',),
Div('typeofingredient', css_class='col-xs-2',),
Div('density_kg_per_lt', css_class='col-xs-2',),
Div('density_pcs_per_kg', css_class='col-xs-1',),
Div('density_pcs_per_lt', css_class='col-xs-1',),
css_class='row',style="border-top:1px solid;padding-top:20px")
)
self.add_input(Submit("submit", "Save"))
self.render_required_fields = True
Dans le self.layout en utilisant HTML(), comment montrer des propriétés de l'objet ingrédient
Comment accéder à l'ingrédient passé dans la queryset dans la mise en page
Par exemple:
self.layout = Layout(
Div(
Div(HTML("{{ forloop.counter }}"),
HTML("{{ ingredient.somemodelmethod }}"),
css_class='col-xs-2', style='text-align:center'),
Cela faisait longtemps que je l'ai fait. Je vais vérifier la solution –