我需要知道如何用get方法获取foreignkey字段的值而不是ID。你知道吗
我将查询集作为json响应从视图发送到模板。一个特定的实例信息,所以我使用get()方法
def TareaDetailView(request):
ID = request.POST.get('id')
tareas_todas = Tareas.objects.values()
tarea = tareas_todas.filter(pk=ID).get()
return JsonResponse({'tarea': tarea})
我在浏览器中获得信息,但字段名从“empresa”更改为“empresa\u id”,例如。你知道吗
这是带有原始字段名的模型。你知道吗
class Tareas(models.Model):
creador = models.ForeignKey(User, blank=True, null=True, on_delete=models.CASCADE)
destinatario = models.ForeignKey(User, related_name='destinatario', blank=True, null=True, on_delete=models.CASCADE)
titulo = models.CharField(max_length=100, blank=True, null=True)
tarea = models.TextField(max_length=500, blank=True, null=True)
resuelto = models.BooleanField(default=True)
fecha_creacion = models.DateField(default=datetime.date.today, blank=True, null=True)
fecha_limite = models.DateField(default=datetime.date.today, blank=True, null=True)
fecha_resuelto = models.DateField(default=datetime.date.today, blank=True, null=True)
empresa = models.ForeignKey("Contactos", blank=True, null=True, on_delete=models.CASCADE)
persona_empresa = models.ForeignKey("Personas", blank=True, null=True, on_delete=models.CASCADE)
这就是我可以在浏览器控制台查看的内容。你知道吗
tarea:
creador_id: 1
destinatario_id: 1
empresa_id: 6
fecha_creacion: "2019-03-10"
fecha_limite: "2019-03-15"
fecha_resuelto: "2019-03-10"
id: 210
persona_empresa_id: 3691
resuelto: false
tarea: "Habrá que hacer alguna cosa maravillosa."
titulo: "Esta es una tarea de prueba"
这是我用来获取数据并在模板中显示的Ajax。你知道吗
<script>
$(function(){
$('.show_tarea').on('click', function (e) {
e.preventDefault();
let tarea_id = $(this).attr('id');
$.ajax({
url:'/catalog/tareas-detail/',
type:'POST',
data: $('#form_tarea_'+tarea_id).serialize(),
success:function(response){
console.log(response);
$('.show_tarea').trigger("reset");
openModal(response);
},
error:function(){
console.log('something went wrong here');
},
});
});
});
function openModal(tarea_data){
$('#creador').text(tarea_data.tarea.creador_id);
$('#destinatario').text(tarea_data.tarea.destinatario_id);
$('#titulo').text(tarea_data.tarea.titulo);
$('#tarea').text(tarea_data.tarea.tarea);
$('#resuelto').text(tarea_data.tarea.resuelto);
$('#fecha_creacion').text(tarea_data.tarea.fecha_creacion);
$('#fecha_limite').text(tarea_data.tarea.fecha_limite);
$('#fecha_resuelto').text(tarea_data.tarea.fecha_resuelto);
$('#empresa').text(tarea_data.tarea.empresa_id);
$('#persona_empresa').text(tarea_data.tarea.persona_empresa_id);
$('#modal_tareas').modal('show');
};
</script>
首先:我想知道如何获取foreignkey值而不是id。 第二:为什么文件名会改变?这是jsonresponse做的事情?你知道吗
谢谢!你知道吗
只获取id,因为在数据库中只保存外部元素的id。你知道吗
如果要通过AJAX传输这些值,就必须检索它们并将它们添加到结果中。例如:
这真是个麻烦的方法。Django REST Framework如果您的所有函数都返回JSON,并且您不使用Djangos前端,那么它将是合适的。你知道吗
您必须将数据存储在foreignkey的dict或json中。就像
现在传递它,返回
JsonResponse({'tarea': my_json})
字段名没有改变,实际上就是这样。你知道吗
你真的想用
values
来做它不想做的事。如果您想将一个模型实例及其相关项一起序列化,您应该看看Django REST框架的序列化程序,它可以完成这项工作,还可以完成更多工作。你知道吗相关问题 更多 >
编程相关推荐