你好朋友,我需要帮助,
我是python和Django的新手
这次我正在构建我的应用,并且我尝试使用on_delete=models.PROTECT
它工作正常,但我想替换我的模板ProtectedError
以获取任何消息。
我该怎么做?
我有这样的事情:
grupos模型
class grupos(models.Model):
nombre_grupo = models.CharField(max_length=100)
nombre_puerto = models.ForeignKey(puerto, on_delete=models.PROTECT)
def __unicode__(self):
return self.nombre_grupo
def __str__(self):
return self.nombre_grupo
正如你所看到的那样依赖性,如果我创建了puerto
,那么我就不会删除puerto
这样的罚款和那个&#39} ; s工作但我得到模板错误,我想要一个msg而不是那个。
这是我的puerto删除视图:
Puerto views.py
def delete(request, id):
# I want the message here..... (such as messages.warning or something)
note = get_object_or_404(puerto, pk=id).delete()
messages.error(request, 'This puerto has been deleted.')
return redirect('/puertot')
例如,我想要messages.warning(request, 'You can't delete this because it's being used by grupos')
模板错误:
ProtectedError at / delete / 59 /("无法删除某些模型实例 '波多黎各'因为它们是通过受保护的外键引用的: ' grupos.nombre_puerto'",]>)
我试图找出如何管理这个但没有线索...
我该怎么做?
谢谢...!
答案 0 :(得分:2)
使用尝试/除来解决异常问题。
set_time_limit(0);
$mageFilename = 'app/Mage.php';
require_once $mageFilename;
Mage::setIsDeveloperMode(true);
ini_set('display_errors', 1);
umask(0);
Mage::app('admin');
Mage::register('isSecureArea', 1);
try{
$csv = new Varien_File_Csv();
$file = 'set_products_with_weight.csv';
$products = $csv->getData($file);
$count = 0;
$resource = Mage::getSingleton('core/resource');
$readConnection = $resource->getConnection('core_read');
$writeConnection = $resource->getConnection('core_write');
foreach($products as $product)
{
$weight = (float) $product[1];
$query = 'UPDATE catalog_product_entity_decimal set value = '.$weight.' WHERE attribute_id = 80 AND entity_id IN (SELECT entity_id FROM catalog_product_entity where sku ="'.$product[0].'")';
$results = $writeConnection->query($query);
}
} catch(Exception $e) {
print_r($e);
}