如何在Django表单中显示特定数据?

时间:2019-09-18 14:50:53

标签: python django django-forms django-views

我是Django的初学者,我正在开发一个用于借书的应用程序,现在我正尝试使用以下模型制作表单:

在我的应用图书中

Class CopyB(models.Model):
     Copy= models.Autofield(primary key=True)
     Condition= models.Charfield(max_lenght=20)
     IdBook=models.ForeignKey(Book, blank= false, null= false ,on_delete= models.CASCADE)

也在我的应用程序用户中

Class User(models.Model):
      Myid= models.Charfield(primary_key=True, max_length=20)
      Name= models.Charfield(max_length=20)
      Lastname= models.Charfield(max_length=20)

在我的应用程序贷款中

From apps.books.models import CopyB
From apps.users.models import User

Class loan(models.Model):
      IdLoan= models.Autofield(primary_key=True)
      IdB= models.ForeignKey(CopyB,blank=False, null=False)
      IdU= models.ForeignKey(User,blank=False, null=False)

我想做的是从模型借贷制作一个表格,并在IdB字段上的该表格上,我只想在选择输入中仅显示模型CopyB中在条件等于可用字段中的书

但是我不知道该怎么做! 预先感谢

1 个答案:

答案 0 :(得分:0)

您必须过滤满足所需条件的对象,然后使用这些对象填写选择字段。

cannot access property 'BTC' of undefined

OR

  constructor(props) {
    super(props);
    this.state = {
      price: {},
      error: false, // Track error state
      loading: true // set loading to true in the beginning
    };
  }

  fetchResult = () => {
    this.setState({ error: false });
    fetch(
      "https://min-api.cryptocompare.com/data/pricemulti?fsyms=BTC,ETH&tsyms=USD,EUR",
      {}
    )
      .then(response => {
        return response.json();
      })
      .then(price => {
        this.setState(
          {
            price: price,
            loading: false // Disable loading after data is fetched
          },
          () => {
            console.log("state:", this.state);
          }
        );
      })
      .catch(error => {
        console.error(error);
        this.setState({ error: true, loading: false });  // Also disable loading in case of error
      });
  };

  componentDidMount = () => {
    this.fetchResult();
  };

  render() {
    if (this.state.error) {
      return <p>Error message here</p>;
    }
    return this.state.loading ? (
      <p>Loading...</p> // Show loader before the data is ready
    ) : (
      <div className="overviewcard">
        <p>{this.state.price.BTC.USD}</p>
      </div>
    );
  }