Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
3 Trả lời
1633 Lượt xem

Hello,

I would like to have a form allowing me to edit the values of the objects in my model.


For example, I have a customized model name "enfant" (ie. children), and I'd like to be able to edit it and with a form on the user's website.


Currently I've managed to display the values present for each object using t-att-value="record.x_studio_name" for example. But I can't validate the form to save the new values.


The question is : how can i make a form in user website to edit a child ?



Here the code of the form for informations (sorry for the image format, i didn't succeed to copy/past code) :


Ảnh đại diện
Huỷ bỏ
Tác giả

For now, i have added this code arount the input :
<div class="col-sm">
<record model="x_liste_des_enfants" id="enfant.id">
<field name="x_name">
<input t-att-value="enfant.x_name" type="text" class="form-control s_website_form_input" name="x_name" placeholder="" data-fill-with="undefined"/>
</field>
</record>
<!-- <delete model="record" search="[('id','=',ref('module_name.record_id'))]"/> -->
</div>

Tác giả Câu trả lời hay nhất

I finally did it!


It feels more like a patch than anything else, but it'll do the job.

In the automation rules, I've added a “on registration” rule, for all my custom fields, with the following python code:

enfant = record.env.user.x_enfants.search([]).filtered(lambda e : e["x_name"] == record["x_name"]).filtered(lambda e : e["id"] != record['id'])
savedName = record["x_name"]
record["x_name"] = record["x_studio_parent"]

if enfant:
    enfant.write({
        "x_studio_age_mois" : record["x_studio_age_mois"],
        "x_studio_poids_kg" : record["x_studio_poids_kg"],
        "x_studio_taille_cm" : record["x_studio_taille_cm"],
        "x_studio_commande" : record["x_studio_commande"],
        "x_studio_parent" : enfant["x_studio_parent"],
        "x_studio_notes" : record["x_studio_notes"]})
else:
    record["x_name"] = savedName


In this code, we retrieve the "enfant" we're interested in with a filter. Then we edit its content with the record data.


The savedName thing is to avoid creating a new object with the x_name currently being parsed, which would belong to the current user. The “else” case is to continue managing the creation of an object in the normal way .

The only problem is that it creates objects to be destroyed afterwards that belong to the OdooBot user, so I think another automation rule to clean this up will do the trick.

Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

Have you seen https://www.odoo.com/forum/help-1/creating-a-website-form-for-a-new-model-240246 ?

Ảnh đại diện
Huỷ bỏ
Tác giả

Yes but that's not working. I'm not looking to customize a form, i try to change the form to let customer edit value by himself, from the website.
For now, i'm trying to do it by adding automated actions in the create form.

Câu trả lời hay nhất

Thank you for sharing

Ảnh đại diện
Huỷ bỏ
Tác giả

That's not working at all. I've just shared more informations...

Bài viết liên quan Trả lời Lượt xem Hoạt động
2
thg 5 25
9920
3
thg 3 24
5585
0
thg 12 23
1332
1
thg 1 21
3578
1
thg 8 15
3932