python - ValueError 无法分配“
- 也欢迎您就如何设计回复模型提出任何建议。
- 甚至如何更好地构建视图
- 这些项目是通过一个表单集在一个父级下创建的
想要归档什么<
问题描述
- 也欢迎您就如何设计回复模型提出任何建议。
- 甚至如何更好地构建视图
- 这些项目是通过一个表单集在一个父级下创建的
想要归档什么
unit_price, item_total_price 与单个项目相关联
delivery_charges、overall_total、subtotal 与所有商品模型相关联,
class RfqFullPrice(models.Model):
sender = models.name = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name="quote_sender")`
receiver = models.name = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name="quote_reciever")
requestedquotation = models.ForeignKey(RequestForQuotation, related_name="replyprice_rfq", on_delete=models.CASCADE)
subtotal = MoneyField(max_digits=14, decimal_places=2, default_currency='USD', validators=[MinMoneyValidator(0)])
delivery_charges = MoneyField(max_digits=14, decimal_places=2, default_currency='USD', validators=[MinMoneyValidator(0)])
overall_total = MoneyField(max_digits=14, decimal_places=2, default_currency='USD', validators=[MinMoneyValidator(0)])
validity_start_date = models.DateField()
validity_end_date = models.DateField()
class ReplyItemPrice(models.Model):
full_price = models.ForeignKey(RfqFullPrice, on_delete=models.CASCADE, related_name='full_price')
the_rfq = models.ForeignKey(RequestForQuotation, on_delete=models.CASCADE)
item = models.ForeignKey(RequestForQuotationItem, on_delete=models.CASCADE, related_name="rfq_item")
quantity = models.CharField(max_length = 200, help_text='Enter the qauntity')
unit_price = MoneyField(max_digits=14, decimal_places=2, default_currency='USD', validators=[MinMoneyValidator(0)])
item_total_price = MoneyField(max_digits=14, decimal_places=2, default_currency='USD', validators=[MinMoneyValidator(0)])
def quote(request, pk):
template_name = 'request_quote/send_quote.html'
requestedquotation = get_object_or_404(RequestForQuotation, pk=pk)
items = RequestForQuotationItem.objects.filter(item=requestedquotation)
if request.method == 'GET':
full_priceform =QuoteFullPriceForm()
item_priceform = QuoteItemPriceForm()
elif request.method == 'POST':
full_priceform =QuoteFullPriceForm(request.POST, request.FILES)
item_priceform = QuoteItemPriceForm(request.POST, request.FILES)
if full_priceform.is_valid() and item_priceform.is_valid():
full_priceform = full_priceform.save(commit=False)
full_priceform.receiver = requestedquotation.sender
full_priceform.sender = request.user
full_priceform.requestedquotation = requestedquotation
full_priceform.save()
for form in item_priceform:
form = item_priceform.save(commit=False)
form.full_price = full_priceform
form.the_rfq = requestedquotation
form.item = items
form.save()
messages.success(request, 'Uploaded'\
'successfully')
return redirect('/')
else:
messages.error(request, 'Error While Uploading')
context = {
'full_priceform':full_priceform,
'item_priceform':item_priceform,
'requestedquotation':requestedquotation,
'items':items,
}
return render(request, template_name, context)
<form class="form-horizontal" method="POST" action="{% url 'rfq:quote' requestedquotation.pk %}" enctype="multipart/form-data">
{% csrf_token %}
{% for item in items %}
<tr>
<td align="center"><span class="badge badge-primary">#{{ item.pk }}</span></td>
<td align="center">{{ item.name }}</td>
<td align="center">{{ item.discription|safe|linebreaksbr }}</td>
<td align="center"><img src="{% if item.image %} {{ item.image.url }} {% else %} {% static 'img/default.jpg' %} {% endif %}" alt="..." height="150" width="150"></td>
<td align="center">{{ item.quantity }}</td>
<td align="center">{{ item_priceform }}</td>
</tr>
{% endfor %}
</tbody>
</table>
{{ full_priceform.subtotal }}
{{ full_priceform.delivery_charges }}
{{ full_priceform.overall_total }}
{{ full_priceform.validity_start_date }}
{{ full_priceform.validity_end_date }}
<button type="submit" class="btn btn-success mb-2">Submit</button>
</form>
您可能会通过使用反射遍历结构字段来以艰难的方式执行此操作,获取标签并解析它们,除非您需要一些自定义,否则不建议这样做。
或者您可能喜欢使用可用的验证器包:
https ://github.com/dealancer/validate
package main
import (
"encoding/json"
"fmt"
"gopkg.in/dealancer/validate.v2"
)
type Config struct {
Name string `yaml:"name" json:"name" validate:"empty=false"`
}
func main() {
var myConfig Config
var rawConfig = []byte(`{}`) // Empty, Nothing getting passed.
err := json.Unmarshal(rawConfig, &myConfig)
if err != nil {
panic(err)
}
err = validate.Validate(myConfig)
if err != nil {
panic(err)
}
fmt.Printf("Name = %s\n", myConfig.Name)
}
解决方案
推荐阅读
- powerbi - 临时表计数过滤行
- c++ - 引用成员变量导致意外结果
- android - android 8 和 10 SecurityException 读取媒体存储中的图像
- javascript - message.guild.roles.cache.get(roleID).members 返回一些成员,有时根本没有
- ios - XCode 自动管理签名无限循环
- python - 如何将图像输入 CNN 进行二元分类
- python - 如何检查应用程序是否已被 Tkinter 中的用户最小化或最大化?
- python - 在 PyQt5 中接收手势(适用于 Android)
- python - 如何在 Pyspark 中更新架构
- javascript - 如何构建和服务我的前端和后端
- 也欢迎您就如何设计回复模型提出任何建议。
- 甚至如何更好地构建视图
- 这些项目是通过一个表单集在一个父级下创建的
想要归档什么<
问题描述
- 也欢迎您就如何设计回复模型提出任何建议。
- 甚至如何更好地构建视图
- 这些项目是通过一个表单集在一个父级下创建的
想要归档什么
unit_price, item_total_price 与单个项目相关联
delivery_charges、overall_total、subtotal 与所有商品模型相关联,
class RfqFullPrice(models.Model): sender = models.name = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name="quote_sender")` receiver = models.name = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name="quote_reciever") requestedquotation = models.ForeignKey(RequestForQuotation, related_name="replyprice_rfq", on_delete=models.CASCADE) subtotal = MoneyField(max_digits=14, decimal_places=2, default_currency='USD', validators=[MinMoneyValidator(0)]) delivery_charges = MoneyField(max_digits=14, decimal_places=2, default_currency='USD', validators=[MinMoneyValidator(0)]) overall_total = MoneyField(max_digits=14, decimal_places=2, default_currency='USD', validators=[MinMoneyValidator(0)]) validity_start_date = models.DateField() validity_end_date = models.DateField() class ReplyItemPrice(models.Model): full_price = models.ForeignKey(RfqFullPrice, on_delete=models.CASCADE, related_name='full_price') the_rfq = models.ForeignKey(RequestForQuotation, on_delete=models.CASCADE) item = models.ForeignKey(RequestForQuotationItem, on_delete=models.CASCADE, related_name="rfq_item") quantity = models.CharField(max_length = 200, help_text='Enter the qauntity') unit_price = MoneyField(max_digits=14, decimal_places=2, default_currency='USD', validators=[MinMoneyValidator(0)]) item_total_price = MoneyField(max_digits=14, decimal_places=2, default_currency='USD', validators=[MinMoneyValidator(0)]) def quote(request, pk): template_name = 'request_quote/send_quote.html' requestedquotation = get_object_or_404(RequestForQuotation, pk=pk) items = RequestForQuotationItem.objects.filter(item=requestedquotation) if request.method == 'GET': full_priceform =QuoteFullPriceForm() item_priceform = QuoteItemPriceForm() elif request.method == 'POST': full_priceform =QuoteFullPriceForm(request.POST, request.FILES) item_priceform = QuoteItemPriceForm(request.POST, request.FILES) if full_priceform.is_valid() and item_priceform.is_valid(): full_priceform = full_priceform.save(commit=False) full_priceform.receiver = requestedquotation.sender full_priceform.sender = request.user full_priceform.requestedquotation = requestedquotation full_priceform.save() for form in item_priceform: form = item_priceform.save(commit=False) form.full_price = full_priceform form.the_rfq = requestedquotation form.item = items form.save() messages.success(request, 'Uploaded'\ 'successfully') return redirect('/') else: messages.error(request, 'Error While Uploading') context = { 'full_priceform':full_priceform, 'item_priceform':item_priceform, 'requestedquotation':requestedquotation, 'items':items, } return render(request, template_name, context)
<form class="form-horizontal" method="POST" action="{% url 'rfq:quote' requestedquotation.pk %}" enctype="multipart/form-data">
{% csrf_token %}
{% for item in items %}
<tr>
<td align="center"><span class="badge badge-primary">#{{ item.pk }}</span></td>
<td align="center">{{ item.name }}</td>
<td align="center">{{ item.discription|safe|linebreaksbr }}</td>
<td align="center"><img src="{% if item.image %} {{ item.image.url }} {% else %} {% static 'img/default.jpg' %} {% endif %}" alt="..." height="150" width="150"></td>
<td align="center">{{ item.quantity }}</td>
<td align="center">{{ item_priceform }}</td>
</tr>
{% endfor %}
</tbody>
</table>
{{ full_priceform.subtotal }}
{{ full_priceform.delivery_charges }}
{{ full_priceform.overall_total }}
{{ full_priceform.validity_start_date }}
{{ full_priceform.validity_end_date }}
<button type="submit" class="btn btn-success mb-2">Submit</button>
</form>
您可能会通过使用反射遍历结构字段来以艰难的方式执行此操作,获取标签并解析它们,除非您需要一些自定义,否则不建议这样做。
或者您可能喜欢使用可用的验证器包: https ://github.com/dealancer/validate
package main
import (
"encoding/json"
"fmt"
"gopkg.in/dealancer/validate.v2"
)
type Config struct {
Name string `yaml:"name" json:"name" validate:"empty=false"`
}
func main() {
var myConfig Config
var rawConfig = []byte(`{}`) // Empty, Nothing getting passed.
err := json.Unmarshal(rawConfig, &myConfig)
if err != nil {
panic(err)
}
err = validate.Validate(myConfig)
if err != nil {
panic(err)
}
fmt.Printf("Name = %s\n", myConfig.Name)
}
解决方案
推荐阅读
- powerbi - 临时表计数过滤行
- c++ - 引用成员变量导致意外结果
- android - android 8 和 10 SecurityException 读取媒体存储中的图像
- javascript - message.guild.roles.cache.get(roleID).members 返回一些成员,有时根本没有
- ios - XCode 自动管理签名无限循环
- python - 如何将图像输入 CNN 进行二元分类
- python - 如何检查应用程序是否已被 Tkinter 中的用户最小化或最大化?
- python - 在 PyQt5 中接收手势(适用于 Android)
- python - 如何在 Pyspark 中更新架构
- javascript - 如何构建和服务我的前端和后端